{"version":3,"file":"static/js/main.245a08c1.js","mappings":"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AEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINqvE,IAAK,CACH3lC,IAAK,EACL1pC,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,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,CDzBO,CAAqC6tM,GAAiB32M,EAAA,EDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIUyD,SAAQ,SAAAzD,GAClBozM,GAAOpzM,GAAcozM,GAAOpzM,EAAA,KELT,oBAAAA,EAOPA,EAAgB+I,GAAA,KACrB28C,MAAQ1lD,EAAA,KACRuoT,YAAcx/S,EAAA,KACdu/S,SAAW7zN,GAAcz0F,GAI9B4sE,GAAWxzC,WAAWh6B,KAAKmpT,YAAc,OAAAx/S,EAAA/I,EAAA6G,UAAAkC,EAG3C2gT,aAAA,SACE1pT,EACA+I,EACAwgC,EACA3rB,GAAA,IAGM1X,EAAM0X,EADImJ,GAAQ3nB,KAAKsmD,MAAO38C,EAAkBwgC,EAAY3rB,GACvCja,KAAK,IAAK,IAC/BmF,EAAK1J,KAAKmpT,YAAcvoT,EAG9BupC,EAAWu9Q,YAAYh+S,EAAIA,EAAI5C,EAAA,EAAA6C,EAGjC4gT,aAAA,SAAa3pT,EAAkB+I,GAC7BA,EAAWo/S,WA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","sources":["../node_modules/@here-wallet/core/node_modules/@near-js/keystores-browser/lib/browser_local_storage_key_store.js","../node_modules/@here-wallet/core/node_modules/@near-js/keystores-browser/lib/index.js","../node_modules/@here-wallet/core/node_modules/@near-js/keystores/lib/in_memory_key_store.js","../node_modules/@here-wallet/core/node_modules/@near-js/keystores/lib/index.js","../node_modules/@here-wallet/core/node_modules/@near-js/keystores/lib/keystore.js","../node_modules/@here-wallet/core/node_modules/@near-js/keystores/lib/merge_key_store.js","../node_modules/@here-wallet/core/node_modules/@near-js/providers/lib/exponential-backoff.js","../node_modules/@here-wallet/core/node_modules/@near-js/providers/lib/fetch.js","../node_modules/@here-wallet/core/node_modules/@near-js/providers/lib/fetch_json.js","../node_modules/@here-wallet/core/node_modules/@near-js/providers/lib/index.js","../node_modules/@here-wallet/core/node_modules/@near-js/providers/lib/json-rpc-provider.js","../node_modules/@here-wallet/core/node_modules/@near-js/providers/lib/provider.js","../node_modules/@here-wallet/core/node_modules/@near-js/wallet-account/lib/index.js","../node_modules/@here-wallet/core/node_modules/@near-js/wallet-account/lib/near.js","../node_modules/@here-wallet/core/node_modules/@near-js/wallet-account/lib/wallet_account.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/account.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/account_creator.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/account_multisig.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/browser-connect.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/browser-index.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/common-index.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/connection.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/contract.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/key_stores/browser-index.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/key_stores/keystore.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/key_stores/merge_key_store.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/near.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/providers/index.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/providers/json-rpc-provider.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/providers/provider.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/signer.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/transaction.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/enums.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/errors.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/format.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/index.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/key_pair.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/logger.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/rpc_errors.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/serialize.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/utils/web.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/validators.js","../node_modules/@here-wallet/core/node_modules/near-api-js/lib/wallet-account.js","../node_modules/@meteorwallet/sdk/node_modules/base-x/src/index.js","../node_modules/@meteorwallet/sdk/node_modules/borsh/lib/index.js","../node_modules/@meteorwallet/sdk/node_modules/bs58/index.js","../node_modules/@mintbase-js/wallet/src/bitte-wallet-setup.ts","../node_modules/@mintbase-js/wallet/src/bitte-wallet.ts","../node_modules/@mintbase-js/wallet/src/index.ts","../node_modules/@mintbase-js/wallet/src/mintbase-wallet.ts","../node_modules/@mintbase-js/wallet/src/setup.ts","../node_modules/@mintbase-js/wallet/src/utils.ts","../node_modules/@mintbase-js/wallet/node_modules/@near-js/keystores-browser/lib/browser_local_storage_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/keystores-browser/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/keystores/lib/in_memory_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/keystores/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/keystores/lib/keystore.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/keystores/lib/merge_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/providers/lib/exponential-backoff.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/providers/lib/fetch.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/providers/lib/fetch_json.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/providers/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/providers/lib/json-rpc-provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/providers/lib/provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/wallet-account/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/wallet-account/lib/near.js","../node_modules/@mintbase-js/wallet/node_modules/@near-js/wallet-account/lib/wallet_account.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/account.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/account_2fa.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/account_creator.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/account_multisig.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/connection.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/constants.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/contract.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/errors.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/local-view-execution/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/local-view-execution/runtime.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/local-view-execution/storage.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/types.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/accounts/lib/utils.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/crypto/lib/constants.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/crypto/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/crypto/lib/key_pair.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/crypto/lib/key_pair_base.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/crypto/lib/key_pair_ed25519.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/crypto/lib/public_key.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/keystores-browser/lib/browser_local_storage_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/keystores-browser/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/keystores/lib/in_memory_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/keystores/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/keystores/lib/keystore.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/keystores/lib/merge_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/exponential-backoff.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/failover-rpc-provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/fetch.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/fetch_json.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/json-rpc-provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/providers/lib/provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/signers/lib/in_memory_signer.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/signers/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/signers/lib/signer.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/action_creators.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/actions.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/create_transaction.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/delegate.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/prefix.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/schema.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/sign.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/lib/signature.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/node_modules/borsh/lib/cjs/buffer.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/node_modules/borsh/lib/cjs/deserialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/node_modules/borsh/lib/cjs/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/node_modules/borsh/lib/cjs/serialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/node_modules/borsh/lib/cjs/types.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/transactions/node_modules/borsh/lib/cjs/utils.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/types/lib/assignable.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/types/lib/errors.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/types/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/types/lib/provider/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/types/lib/provider/response.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/constants.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/errors/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/format.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/logger/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/logging.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/utils.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/utils/lib/validators.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/lib/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/lib/near.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/lib/wallet_account.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/node_modules/borsh/lib/cjs/buffer.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/node_modules/borsh/lib/cjs/deserialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/node_modules/borsh/lib/cjs/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/node_modules/borsh/lib/cjs/serialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/node_modules/borsh/lib/cjs/types.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/@near-js/wallet-account/node_modules/borsh/lib/cjs/utils.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/account.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/account_creator.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/account_multisig.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/browser-connect.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/browser-index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/common-index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/connection.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/contract.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/key_stores/browser-index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/key_stores/keystore.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/key_stores/merge_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/near.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/providers/failover-rpc-provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/providers/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/providers/json-rpc-provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/providers/provider.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/signer.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/transaction.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/enums.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/errors.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/format.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/key_pair.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/logger.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/rpc_errors.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/serialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/utils/web.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/validators.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/lib/wallet-account.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/node_modules/borsh/lib/cjs/buffer.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/node_modules/borsh/lib/cjs/deserialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/node_modules/borsh/lib/cjs/index.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/node_modules/borsh/lib/cjs/serialize.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/node_modules/borsh/lib/cjs/types.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/node_modules/near-api-js/node_modules/borsh/lib/cjs/utils.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/account.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/account_creator.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/account_multisig.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/browser-connect.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/browser-index.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/common-index.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/connection.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/contract.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/key_stores/browser-index.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/key_stores/keystore.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/key_stores/merge_key_store.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/near.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/providers/index.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/providers/json-rpc-provider.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/providers/provider.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/signer.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/transaction.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/enums.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/errors.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/format.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/index.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/key_pair.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/logger.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/rpc_errors.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/serialize.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/utils/web.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/validators.js","../node_modules/@mintbase-js/wallet/node_modules/near-api-js/lib/wallet-account.js","../node_modules/@near-js/accounts/lib/account.js","../node_modules/@near-js/accounts/lib/account_2fa.js","../node_modules/@near-js/accounts/lib/account_creator.js","../node_modules/@near-js/accounts/lib/account_multisig.js","../node_modules/@near-js/accounts/lib/connection.js","../node_modules/@near-js/accounts/lib/constants.js","../node_modules/@near-js/accounts/lib/contract.js","../node_modules/@near-js/accounts/lib/errors.js","../node_modules/@near-js/accounts/lib/index.js","../node_modules/@near-js/accounts/lib/local-view-execution/index.js","../node_modules/@near-js/accounts/lib/local-view-execution/runtime.js","../node_modules/@near-js/accounts/lib/local-view-execution/storage.js","../node_modules/@near-js/accounts/lib/types.js","../node_modules/@near-js/accounts/node_modules/@near-js/providers/lib/exponential-backoff.js","../node_modules/@near-js/accounts/node_modules/@near-js/providers/lib/fetch.js","../node_modules/@near-js/accounts/node_modules/@near-js/providers/lib/fetch_json.js","../node_modules/@near-js/accounts/node_modules/@near-js/providers/lib/index.js","../node_modules/@near-js/accounts/node_modules/@near-js/providers/lib/json-rpc-provider.js","../node_modules/@near-js/accounts/node_modules/@near-js/providers/lib/provider.js","../node_modules/@near-js/accounts/node_modules/ajv/lib/ajv.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/codegen/code.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/codegen/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/codegen/scope.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/errors.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/names.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/ref_error.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/resolve.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/rules.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/util.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/applicability.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/boolSchema.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/dataType.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/defaults.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/keyword.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/compile/validate/subschema.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/core.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/runtime/equal.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/runtime/ucs2length.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/runtime/uri.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/runtime/validation_error.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/contains.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/if.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/items.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/not.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/properties.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/code.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/core/id.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/core/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/core/ref.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/discriminator/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/discriminator/types.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/draft7.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/format/format.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/format/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/metadata.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/const.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/enum.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/index.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/pattern.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/required.ts","../node_modules/@near-js/accounts/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../node_modules/@near-js/crypto/lib/constants.js","../node_modules/@near-js/crypto/lib/index.js","../node_modules/@near-js/crypto/lib/key_pair.js","../node_modules/@near-js/crypto/lib/key_pair_base.js","../node_modules/@near-js/crypto/lib/key_pair_ed25519.js","../node_modules/@near-js/crypto/lib/public_key.js","../node_modules/@near-js/keystores-browser/lib/browser_local_storage_key_store.js","../node_modules/@near-js/keystores-browser/lib/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/crypto/lib/constants.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/crypto/lib/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/crypto/lib/key_pair.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/crypto/lib/key_pair_base.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/crypto/lib/key_pair_ed25519.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/crypto/lib/public_key.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/types/lib/assignable.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/types/lib/errors.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/types/lib/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/types/lib/provider/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/types/lib/provider/response.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/constants.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/errors/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/format.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/logger/index.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/logging.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/provider.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/utils.js","../node_modules/@near-js/keystores-browser/node_modules/@near-js/utils/lib/validators.js","../node_modules/@near-js/keystores/lib/in_memory_key_store.js","../node_modules/@near-js/keystores/lib/index.js","../node_modules/@near-js/keystores/lib/keystore.js","../node_modules/@near-js/keystores/lib/merge_key_store.js","../node_modules/@near-js/keystores/node_modules/@near-js/crypto/lib/constants.js","../node_modules/@near-js/keystores/node_modules/@near-js/crypto/lib/index.js","../node_modules/@near-js/keystores/node_modules/@near-js/crypto/lib/key_pair.js","../node_modules/@near-js/keystores/node_modules/@near-js/crypto/lib/key_pair_base.js","../node_modules/@near-js/keystores/node_modules/@near-js/crypto/lib/key_pair_ed25519.js","../node_modules/@near-js/keystores/node_modules/@near-js/crypto/lib/public_key.js","../node_modules/@near-js/keystores/node_modules/@near-js/types/lib/assignable.js","../node_modules/@near-js/keystores/node_modules/@near-js/types/lib/errors.js","../node_modules/@near-js/keystores/node_modules/@near-js/types/lib/index.js","../node_modules/@near-js/keystores/node_modules/@near-js/types/lib/provider/index.js","../node_modules/@near-js/keystores/node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/@near-js/keystores/node_modules/@near-js/types/lib/provider/response.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/constants.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/errors/index.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/format.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/index.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/logger/index.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/logging.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/provider.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/utils.js","../node_modules/@near-js/keystores/node_modules/@near-js/utils/lib/validators.js","../node_modules/@near-js/providers/lib/exponential-backoff.js","../node_modules/@near-js/providers/lib/failover-rpc-provider.js","../node_modules/@near-js/providers/lib/fetch.js","../node_modules/@near-js/providers/lib/fetch_json.js","../node_modules/@near-js/providers/lib/index.js","../node_modules/@near-js/providers/lib/json-rpc-provider.js","../node_modules/@near-js/providers/lib/provider.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/action_creators.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/actions.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/create_transaction.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/delegate.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/index.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/prefix.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/schema.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/sign.js","../node_modules/@near-js/providers/node_modules/@near-js/transactions/lib/signature.js","../node_modules/@near-js/providers/node_modules/@near-js/types/lib/assignable.js","../node_modules/@near-js/providers/node_modules/@near-js/types/lib/errors.js","../node_modules/@near-js/providers/node_modules/@near-js/types/lib/index.js","../node_modules/@near-js/providers/node_modules/@near-js/types/lib/provider/index.js","../node_modules/@near-js/providers/node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/@near-js/providers/node_modules/@near-js/types/lib/provider/response.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/constants.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/errors/index.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/format.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/index.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/logger/index.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/logging.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/provider.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/utils.js","../node_modules/@near-js/providers/node_modules/@near-js/utils/lib/validators.js","../node_modules/@near-js/signers/lib/in_memory_signer.js","../node_modules/@near-js/signers/lib/index.js","../node_modules/@near-js/signers/lib/signer.js","../node_modules/@near-js/signers/node_modules/@near-js/keystores/lib/in_memory_key_store.js","../node_modules/@near-js/signers/node_modules/@near-js/keystores/lib/index.js","../node_modules/@near-js/signers/node_modules/@near-js/keystores/lib/keystore.js","../node_modules/@near-js/signers/node_modules/@near-js/keystores/lib/merge_key_store.js","../node_modules/@near-js/transactions/lib/action_creators.js","../node_modules/@near-js/transactions/lib/actions.js","../node_modules/@near-js/transactions/lib/create_transaction.js","../node_modules/@near-js/transactions/lib/delegate.js","../node_modules/@near-js/transactions/lib/index.js","../node_modules/@near-js/transactions/lib/prefix.js","../node_modules/@near-js/transactions/lib/schema.js","../node_modules/@near-js/transactions/lib/sign.js","../node_modules/@near-js/transactions/lib/signature.js","../node_modules/@near-js/types/lib/assignable.js","../node_modules/@near-js/types/lib/errors.js","../node_modules/@near-js/types/lib/index.js","../node_modules/@near-js/types/lib/provider/index.js","../node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/@near-js/types/lib/provider/response.js","../node_modules/@near-js/utils/lib/constants.js","../node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/@near-js/utils/lib/errors/index.js","../node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/@near-js/utils/lib/format.js","../node_modules/@near-js/utils/lib/index.js","../node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/@near-js/utils/lib/logger/index.js","../node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/@near-js/utils/lib/logging.js","../node_modules/@near-js/utils/lib/provider.js","../node_modules/@near-js/utils/lib/validators.js","../node_modules/@near-js/wallet-account/lib/index.js","../node_modules/@near-js/wallet-account/lib/near.js","../node_modules/@near-js/wallet-account/lib/wallet_account.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/account.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/account_2fa.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/account_creator.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/account_multisig.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/connection.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/constants.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/contract.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/errors.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/local-view-execution/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/local-view-execution/runtime.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/local-view-execution/storage.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/types.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/accounts/lib/utils.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/crypto/lib/constants.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/crypto/lib/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/crypto/lib/key_pair.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/crypto/lib/key_pair_base.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/crypto/lib/key_pair_ed25519.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/crypto/lib/public_key.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/signers/lib/in_memory_signer.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/signers/lib/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/signers/lib/signer.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/action_creators.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/actions.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/create_transaction.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/delegate.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/prefix.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/schema.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/sign.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/transactions/lib/signature.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/types/lib/assignable.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/types/lib/errors.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/types/lib/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/types/lib/provider/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/types/lib/provider/response.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/constants.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/errors/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/format.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/logger/index.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/logging.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/provider.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/utils.js","../node_modules/@near-js/wallet-account/node_modules/@near-js/utils/lib/validators.js","../node_modules/@near-wallet-selector/core/node_modules/base-x/src/index.js","../node_modules/@near-wallet-selector/core/node_modules/borsh/lib/index.js","../node_modules/@near-wallet-selector/core/node_modules/bs58/index.js","../node_modules/@noble/curves/src/abstract/curve.ts","../node_modules/@noble/curves/src/abstract/edwards.ts","../node_modules/@noble/curves/src/abstract/hash-to-curve.ts","../node_modules/@noble/curves/src/abstract/modular.ts","../node_modules/@noble/curves/src/abstract/montgomery.ts","../node_modules/@noble/curves/src/abstract/utils.ts","../node_modules/@noble/curves/src/ed25519.ts","../node_modules/@noble/curves/node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/curves/node_modules/@noble/hashes/src/_sha2.ts","../node_modules/@noble/curves/node_modules/@noble/hashes/src/_u64.ts","../node_modules/@noble/curves/node_modules/@noble/hashes/src/crypto.ts","../node_modules/@noble/curves/node_modules/@noble/hashes/src/sha512.ts","../node_modules/@noble/curves/node_modules/@noble/hashes/src/utils.ts","../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/_sha2.ts","../node_modules/@noble/hashes/src/crypto.ts","../node_modules/@noble/hashes/src/sha256.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/ajv-formats/src/formats.ts","../node_modules/ajv-formats/src/index.ts","../node_modules/ajv-formats/src/limit.ts","../node_modules/ajv/lib/ajv.ts","../node_modules/ajv/lib/compile/codegen/code.ts","../node_modules/ajv/lib/compile/codegen/index.ts","../node_modules/ajv/lib/compile/codegen/scope.ts","../node_modules/ajv/lib/compile/errors.ts","../node_modules/ajv/lib/compile/index.ts","../node_modules/ajv/lib/compile/names.ts","../node_modules/ajv/lib/compile/ref_error.ts","../node_modules/ajv/lib/compile/resolve.ts","../node_modules/ajv/lib/compile/rules.ts","../node_modules/ajv/lib/compile/util.ts","../node_modules/ajv/lib/compile/validate/applicability.ts","../node_modules/ajv/lib/compile/validate/boolSchema.ts","../node_modules/ajv/lib/compile/validate/dataType.ts","../node_modules/ajv/lib/compile/validate/defaults.ts","../node_modules/ajv/lib/compile/validate/index.ts","../node_modules/ajv/lib/compile/validate/keyword.ts","../node_modules/ajv/lib/compile/validate/subschema.ts","../node_modules/ajv/lib/core.ts","../node_modules/ajv/lib/runtime/equal.ts","../node_modules/ajv/lib/runtime/ucs2length.ts","../node_modules/ajv/lib/runtime/uri.ts","../node_modules/ajv/lib/runtime/validation_error.ts","../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts","../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts","../node_modules/ajv/lib/vocabularies/applicator/allOf.ts","../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts","../node_modules/ajv/lib/vocabularies/applicator/contains.ts","../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts","../node_modules/ajv/lib/vocabularies/applicator/if.ts","../node_modules/ajv/lib/vocabularies/applicator/index.ts","../node_modules/ajv/lib/vocabularies/applicator/items.ts","../node_modules/ajv/lib/vocabularies/applicator/items2020.ts","../node_modules/ajv/lib/vocabularies/applicator/not.ts","../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts","../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts","../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts","../node_modules/ajv/lib/vocabularies/applicator/properties.ts","../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts","../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts","../node_modules/ajv/lib/vocabularies/code.ts","../node_modules/ajv/lib/vocabularies/core/id.ts","../node_modules/ajv/lib/vocabularies/core/index.ts","../node_modules/ajv/lib/vocabularies/core/ref.ts","../node_modules/ajv/lib/vocabularies/discriminator/index.ts","../node_modules/ajv/lib/vocabularies/discriminator/types.ts","../node_modules/ajv/lib/vocabularies/draft7.ts","../node_modules/ajv/lib/vocabularies/format/format.ts","../node_modules/ajv/lib/vocabularies/format/index.ts","../node_modules/ajv/lib/vocabularies/metadata.ts","../node_modules/ajv/lib/vocabularies/validation/const.ts","../node_modules/ajv/lib/vocabularies/validation/enum.ts","../node_modules/ajv/lib/vocabularies/validation/index.ts","../node_modules/ajv/lib/vocabularies/validation/limitItems.ts","../node_modules/ajv/lib/vocabularies/validation/limitLength.ts","../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts","../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts","../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts","../node_modules/ajv/lib/vocabularies/validation/pattern.ts","../node_modules/ajv/lib/vocabularies/validation/required.ts","../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts","../node_modules/aos/dist/aos.js","../node_modules/asn1.js/lib/asn1.js","../node_modules/asn1.js/lib/asn1/api.js","../node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/asn1.js/lib/asn1/constants/der.js","../node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/asn1.js/node_modules/bn.js/lib/bn.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/base-x/index.js","../node_modules/base64-js/index.js","../node_modules/bn.js/lib/bn.js","../node_modules/borsh/lib/cjs/buffer.js","../node_modules/borsh/lib/cjs/deserialize.js","../node_modules/borsh/lib/cjs/index.js","../node_modules/borsh/lib/cjs/serialize.js","../node_modules/borsh/lib/cjs/types.js","../node_modules/borsh/lib/cjs/utils.js","../node_modules/brorand/index.js","../node_modules/browserify-aes/aes.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/browser.js","../node_modules/browserify-aes/decrypter.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/browserify-aes/modes/index.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/browserify-cipher/browser.js","../node_modules/browserify-des/index.js","../node_modules/browserify-des/modes.js","../node_modules/browserify-rsa/index.js","../node_modules/browserify-sign/algos.js","../node_modules/browserify-sign/browser/index.js","../node_modules/browserify-sign/browser/sign.js","../node_modules/browserify-sign/browser/verify.js","../node_modules/browserify-sign/node_modules/isarray/index.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js","../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","../node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js","../node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/bs58/index.js","../node_modules/buffer-xor/index.js","../node_modules/buffer/index.js","../node_modules/builtin-status-codes/browser.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/charenc/charenc.js","../node_modules/cipher-base/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/core-util-is/lib/util.js","../node_modules/create-ecdh/browser.js","../node_modules/create-ecdh/node_modules/bn.js/lib/bn.js","../node_modules/create-hash/browser.js","../node_modules/create-hash/md5.js","../node_modules/create-hmac/browser.js","../node_modules/create-hmac/legacy.js","../node_modules/crypt/crypt.js","../node_modules/crypto-browserify/index.js","../node_modules/dayjs/dayjs.min.js","../node_modules/decode-uri-component/index.js","../node_modules/define-data-property/index.js","../node_modules/depd/lib/browser/index.js","../node_modules/des.js/lib/des.js","../node_modules/des.js/lib/des/cbc.js","../node_modules/des.js/lib/des/cipher.js","../node_modules/des.js/lib/des/des.js","../node_modules/des.js/lib/des/ede.js","../node_modules/des.js/lib/des/utils.js","../node_modules/diffie-hellman/browser.js","../node_modules/diffie-hellman/lib/dh.js","../node_modules/diffie-hellman/lib/generatePrime.js","../node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/elliptic/node_modules/bn.js/lib/bn.js","../node_modules/encode-utf8/index.js","../node_modules/es-define-property/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/events/events.js","../node_modules/evp_bytestokey/index.js","../node_modules/fast-deep-equal/index.js","../node_modules/filter-obj/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/generate-function/index.js","../node_modules/generate-object-property/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/hash.js/lib/hash.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/hasown/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/http-errors/index.js","../node_modules/http-errors/node_modules/depd/lib/browser/index.js","../node_modules/http-errors/node_modules/inherits/inherits_browser.js","../node_modules/http-errors/node_modules/setprototypeof/index.js","../node_modules/http-errors/node_modules/statuses/index.js","../node_modules/https-browserify/index.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/is-mobile/index.js","../node_modules/is-my-ip-valid/index.js","../node_modules/is-my-json-valid/formats.js","../node_modules/is-my-json-valid/index.js","../node_modules/is-property/is-property.js","../node_modules/js-sha256/src/sha256.js","../node_modules/json-schema-traverse/index.js","../node_modules/json2mq/index.js","../node_modules/jsonpointer/jsonpointer.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/debounce.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/now.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/lru_map/dist/lru.js","../node_modules/md5.js/index.js","../node_modules/md5.js/node_modules/hash-base/index.js","../node_modules/miller-rabin/lib/mr.js","../node_modules/miller-rabin/node_modules/bn.js/lib/bn.js","../node_modules/minimalistic-assert/index.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/mustache/mustache.js","../node_modules/near-abi/lib/index.js","../node_modules/near-api-js/lib/account.js","../node_modules/near-api-js/lib/account_creator.js","../node_modules/near-api-js/lib/account_multisig.js","../node_modules/near-api-js/lib/browser-connect.js","../node_modules/near-api-js/lib/browser-index.js","../node_modules/near-api-js/lib/common-index.js","../node_modules/near-api-js/lib/connection.js","../node_modules/near-api-js/lib/contract.js","../node_modules/near-api-js/lib/key_stores/browser-index.js","../node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","../node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","../node_modules/near-api-js/lib/key_stores/keystore.js","../node_modules/near-api-js/lib/key_stores/merge_key_store.js","../node_modules/near-api-js/lib/near.js","../node_modules/near-api-js/lib/providers/failover-rpc-provider.js","../node_modules/near-api-js/lib/providers/index.js","../node_modules/near-api-js/lib/providers/json-rpc-provider.js","../node_modules/near-api-js/lib/providers/provider.js","../node_modules/near-api-js/lib/signer.js","../node_modules/near-api-js/lib/transaction.js","../node_modules/near-api-js/lib/utils/enums.js","../node_modules/near-api-js/lib/utils/errors.js","../node_modules/near-api-js/lib/utils/format.js","../node_modules/near-api-js/lib/utils/index.js","../node_modules/near-api-js/lib/utils/key_pair.js","../node_modules/near-api-js/lib/utils/logger.js","../node_modules/near-api-js/lib/utils/rpc_errors.js","../node_modules/near-api-js/lib/utils/serialize.js","../node_modules/near-api-js/lib/utils/web.js","../node_modules/near-api-js/lib/validators.js","../node_modules/near-api-js/lib/wallet-account.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/account.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/account_2fa.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/account_creator.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/account_multisig.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/connection.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/constants.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/contract.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/errors.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/index.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/local-view-execution/index.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/local-view-execution/runtime.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/local-view-execution/storage.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/types.js","../node_modules/near-api-js/node_modules/@near-js/accounts/lib/utils.js","../node_modules/near-api-js/node_modules/@near-js/crypto/lib/constants.js","../node_modules/near-api-js/node_modules/@near-js/crypto/lib/index.js","../node_modules/near-api-js/node_modules/@near-js/crypto/lib/key_pair.js","../node_modules/near-api-js/node_modules/@near-js/crypto/lib/key_pair_base.js","../node_modules/near-api-js/node_modules/@near-js/crypto/lib/key_pair_ed25519.js","../node_modules/near-api-js/node_modules/@near-js/crypto/lib/public_key.js","../node_modules/near-api-js/node_modules/@near-js/signers/lib/in_memory_signer.js","../node_modules/near-api-js/node_modules/@near-js/signers/lib/index.js","../node_modules/near-api-js/node_modules/@near-js/signers/lib/signer.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/action_creators.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/actions.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/create_transaction.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/delegate.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/index.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/prefix.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/schema.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/sign.js","../node_modules/near-api-js/node_modules/@near-js/transactions/lib/signature.js","../node_modules/near-api-js/node_modules/@near-js/types/lib/assignable.js","../node_modules/near-api-js/node_modules/@near-js/types/lib/errors.js","../node_modules/near-api-js/node_modules/@near-js/types/lib/index.js","../node_modules/near-api-js/node_modules/@near-js/types/lib/provider/index.js","../node_modules/near-api-js/node_modules/@near-js/types/lib/provider/light_client.js","../node_modules/near-api-js/node_modules/@near-js/types/lib/provider/response.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/constants.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/errors/errors.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/errors/index.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/errors/rpc_errors.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/format.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/index.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/logger/console.logger.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/logger/index.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/logger/logger.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/logging.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/provider.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/utils.js","../node_modules/near-api-js/node_modules/@near-js/utils/lib/validators.js","../node_modules/node-fetch/browser.js","../node_modules/object-inspect/index.js","../node_modules/parse-asn1/asn1.js","../node_modules/parse-asn1/certificate.js","../node_modules/parse-asn1/fixProc.js","../node_modules/parse-asn1/index.js","../node_modules/pbkdf2/browser.js","../node_modules/pbkdf2/lib/async.js","../node_modules/pbkdf2/lib/default-encoding.js","../node_modules/pbkdf2/lib/precondition.js","../node_modules/pbkdf2/lib/sync-browser.js","../node_modules/pbkdf2/lib/to-buffer.js","../node_modules/process-nextick-args/index.js","../node_modules/process/browser.js","../node_modules/public-encrypt/browser.js","../node_modules/public-encrypt/mgf.js","../node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","../node_modules/public-encrypt/privateDecrypt.js","../node_modules/public-encrypt/publicEncrypt.js","../node_modules/public-encrypt/withPublic.js","../node_modules/public-encrypt/xor.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/index.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/utils.js","../node_modules/query-string/index.js","../node_modules/randombytes/browser.js","../node_modules/randomfill/browser.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/focusManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.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/ripemd160/index.js","../node_modules/ripemd160/node_modules/hash-base/index.js","../node_modules/safe-buffer/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/semver/classes/comparator.js","../node_modules/semver/classes/range.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/clean.js","../node_modules/semver/functions/cmp.js","../node_modules/semver/functions/coerce.js","../node_modules/semver/functions/compare-build.js","../node_modules/semver/functions/compare-loose.js","../node_modules/semver/functions/compare.js","../node_modules/semver/functions/diff.js","../node_modules/semver/functions/eq.js","../node_modules/semver/functions/gt.js","../node_modules/semver/functions/gte.js","../node_modules/semver/functions/inc.js","../node_modules/semver/functions/lt.js","../node_modules/semver/functions/lte.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/minor.js","../node_modules/semver/functions/neq.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/patch.js","../node_modules/semver/functions/prerelease.js","../node_modules/semver/functions/rcompare.js","../node_modules/semver/functions/rsort.js","../node_modules/semver/functions/satisfies.js","../node_modules/semver/functions/sort.js","../node_modules/semver/functions/valid.js","../node_modules/semver/index.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/internal/lrucache.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/re.js","../node_modules/semver/ranges/gtr.js","../node_modules/semver/ranges/intersects.js","../node_modules/semver/ranges/ltr.js","../node_modules/semver/ranges/max-satisfying.js","../node_modules/semver/ranges/min-satisfying.js","../node_modules/semver/ranges/min-version.js","../node_modules/semver/ranges/outside.js","../node_modules/semver/ranges/simplify.js","../node_modules/semver/ranges/subset.js","../node_modules/semver/ranges/to-comparators.js","../node_modules/semver/ranges/valid.js","../node_modules/set-function-length/index.js","../node_modules/sha.js/hash.js","../node_modules/sha.js/index.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha384.js","../node_modules/sha.js/sha512.js","../node_modules/sha1/sha1.js","../node_modules/shallowequal/index.js","../node_modules/side-channel/index.js","../node_modules/split-on-first/index.js","../node_modules/stream-browserify/index.js","../node_modules/stream-http/index.js","../node_modules/stream-http/lib/capability.js","../node_modules/stream-http/lib/request.js","../node_modules/stream-http/lib/response.js","../node_modules/strict-uri-encode/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/toggle-selection/index.js","../node_modules/toidentifier/index.js","../node_modules/uri-js/src/util.ts","../node_modules/uri-js/src/regexps-uri.ts","../node_modules/uri-js/src/regexps-iri.ts","../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../node_modules/uri-js/src/uri.ts","../node_modules/uri-js/src/schemes/http.ts","../node_modules/uri-js/src/schemes/https.ts","../node_modules/uri-js/src/schemes/ws.ts","../node_modules/uri-js/src/schemes/wss.ts","../node_modules/uri-js/src/schemes/mailto.ts","../node_modules/uri-js/src/schemes/urn.ts","../node_modules/uri-js/src/schemes/urn-uuid.ts","../node_modules/uri-js/src/index.ts","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/util-deprecate/browser.js","../node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/util.js","../node_modules/xtend/immutable.js","../node_modules/@here-wallet/core/src/HereKeyStore.ts","../node_modules/@here-wallet/core/src/JSONStorage.ts","../node_modules/@here-wallet/core/src/WidgetStrategy.ts","../node_modules/@here-wallet/core/src/WindowStrategy.ts","../node_modules/@here-wallet/core/src/actions/index.ts","../node_modules/@here-wallet/core/src/here-provider/index.ts","../node_modules/@here-wallet/core/src/here-provider/methods.ts","../node_modules/@here-wallet/core/src/index.ts","../node_modules/@here-wallet/core/src/nep0314.ts","../node_modules/@here-wallet/core/src/provider.ts","../node_modules/@here-wallet/core/src/utils.ts","../node_modules/@here-wallet/core/src/wallet.ts","../meteor-common/src/modules_app_core/theme/constants_theme.ts","../meteor-common/src/modules_external/near/types/near_basic_types.ts","../meteor-common/src/modules_feature/dapp_connect/error_handling_dappConnect.ts","../meteor-common/src/modules_feature/dapp_connect/types_dappConnect.ts","../meteor-common/src/modules_utility/data_type_utils/StringUtils.ts","../meteor-common/src/modules_utility/state_utils/EnvironmentStorageUtils.ts","../meteor-sdk/src/MeteorWallet.ts","../meteor-sdk/src/MeteorWalletConstants.ts","../meteor-sdk/src/envConfig.ts","../meteor-sdk/src/index.ts","../meteor-sdk/src/near-schema/TransactionSchemaV2.ts","../meteor-sdk/src/postMessage/MeteorPostMessenger.ts","../meteor-sdk/src/utils/MeteorSdkUtils.ts","../meteor-sdk/src/utils/create-action.ts","../node_modules/classnames/index.js","../node_modules/fast-uri/index.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/lib/scopedChars.js","../node_modules/fast-uri/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@meteorwallet/sdk/node_modules/nanoid/url-alphabet/index.js","../node_modules/@meteorwallet/sdk/node_modules/nanoid/index.browser.js","../node_modules/@mintbase-js/wallet/node_modules/@near-wallet-selector/wallet-utils/index.js","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../node_modules/uuid4/browser.mjs","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@ant-design/icons-svg/es/asn/VerticalAlignTopOutlined.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/VerticalAlignTopOutlined.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-motion/es/context.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/omit.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/_util/throttleByAnimationFrame.js","../node_modules/antd/es/back-top/index.js","utils/constant.tsx","components/debug/FlagDebugger.tsx","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/base.js","utils/colors.ts","components/homepage/styles.tsx","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/rc-dialog/es/index.js","../node_modules/rc-image/es/PreviewGroup.js","../node_modules/rc-image/es/Operations.js","../node_modules/rc-image/es/previewConfig.js","../node_modules/rc-image/es/hooks/useImageTransform.js","../node_modules/rc-image/es/getFixScaleEleTransPosition.js","../node_modules/rc-image/es/Preview.js","../node_modules/rc-image/es/Image.js","../node_modules/rc-image/es/index.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/_util/type.js","../node_modules/antd/es/_util/motion.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/RotateLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","../node_modules/@ant-design/icons/es/icons/RotateRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomInOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomInOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomOutOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomOutOutlined.js","../node_modules/antd/es/image/PreviewGroup.js","../node_modules/antd/es/image/index.js","components/common/Images.tsx","images/new_logo/header.svg","components/common/index.tsx","../node_modules/styled-components/src/constructors/keyframes.js","components/common/Container.tsx","images/discord.svg","images/medium.svg","images/telegram.svg","images/x.svg","components/footer.tsx","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/tooltip/index.js","components/common/SocialFooter.tsx","Contexts/init/auth.tsx","Contexts/init/useBalance.tsx","Contexts/init/contractMain.tsx","Contexts/init/wallet.tsx","Contexts/init/poolTokenList.tsx","Contexts/init/poolNftList.tsx","../node_modules/antd/es/spin/index.js","images/loading.svg","components/langbiang/NftsCollection.tsx","components/langbiang/LangbiangJoining.tsx","images/twiter.svg","components/langbiang/LangbiangFooter.tsx","components/langbiang/LangbiangHeader.tsx","components/langbiang/LangbiangBanner.tsx","components/langbiang/LangbiangBenefit.tsx","hooks/useIsomorphicLayoutEffect.ts","hooks/useEventListener.ts","hooks/useWindowSize.ts","components/langbiang/index.tsx","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/lift.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/rxjs/src/internal/util/createErrorClass.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/arrRemove.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","../node_modules/rxjs/src/internal/util/noop.ts","../node_modules/rxjs/src/internal/NotificationFactories.ts","../node_modules/rxjs/src/internal/util/errorContext.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/BehaviorSubject.ts","../node_modules/rxjs/src/internal/operators/scan.ts","../node_modules/rxjs/src/internal/operators/scanInternals.ts","../node_modules/@near-wallet-selector/core/index.js","../node_modules/@near-wallet-selector/modal-ui/index.js","../node_modules/@near-wallet-selector/wallet-utils/index.js","../node_modules/@near-wallet-selector/my-near-wallet/index.js","../node_modules/@near-wallet-selector/okx-wallet/index.js","../node_modules/@near-wallet-selector/sender/index.js","../node_modules/@near-wallet-selector/here-wallet/index.js","../node_modules/@near-wallet-selector/meteor-wallet/index.js","../node_modules/@ledgerhq/errors/src/helpers.ts","../node_modules/@ledgerhq/errors/src/index.ts","../node_modules/@ledgerhq/logs/src/index.ts","../node_modules/@ledgerhq/hw-transport-webhid/node_modules/@ledgerhq/hw-transport/src/Transport.ts","../node_modules/@ledgerhq/devices/src/hid-framing.ts","../node_modules/@ledgerhq/devices/src/index.ts","../node_modules/@ledgerhq/hw-transport-webhid/src/TransportWebHID.ts","../node_modules/@near-wallet-selector/ledger/index.js","Contexts/WalletContext.tsx","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/rc-slider/es/context.js","../node_modules/rc-slider/es/util.js","../node_modules/rc-slider/es/Handles/Handle.js","../node_modules/rc-slider/es/Handles/index.js","../node_modules/rc-slider/es/hooks/useDrag.js","../node_modules/rc-slider/es/Tracks/Track.js","../node_modules/rc-slider/es/Tracks/index.js","../node_modules/rc-slider/es/Marks/Mark.js","../node_modules/rc-slider/es/Marks/index.js","../node_modules/rc-slider/es/Steps/Dot.js","../node_modules/rc-slider/es/Steps/index.js","../node_modules/rc-slider/es/Slider.js","../node_modules/rc-slider/es/hooks/useOffset.js","../node_modules/rc-slider/es/index.js","../node_modules/antd/es/slider/SliderTooltip.js","../node_modules/antd/es/slider/index.js","hooks/useCurrentToken.tsx","../node_modules/big.js/big.mjs","utils/common.tsx","components/liquidity/components/Reward.tsx","define/enum.tsx","hooks/useFunctionContract.tsx","types/token.ts","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","../node_modules/@ant-design/icons/es/icons/UpOutlined.js","../node_modules/rc-input-number/es/utils/supportUtil.js","../node_modules/rc-input-number/es/utils/numberUtil.js","../node_modules/rc-input-number/es/utils/MiniDecimal.js","../node_modules/rc-input-number/es/StepHandler.js","../node_modules/rc-input-number/es/InputNumber.js","../node_modules/rc-input-number/es/hooks/useCursor.js","../node_modules/rc-input-number/es/hooks/useFrame.js","../node_modules/rc-input-number/es/index.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/input-number/index.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","components/popup/component/ViewActionPopup.tsx","hooks/useHealthFactor.tsx","utils/connect/contract.tsx","hooks/useError.tsx","components/popup/actions/Deposit.tsx","components/popup/actions/Borrow.tsx","components/popup/actions/BorrowStable.tsx","components/popup/messages/RegistFirstTime.tsx","components/popup/messages/RequireLogin.tsx","components/popup/disclaimer/confirm.tsx","components/popup/disclaimer/policy.tsx","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/rc-util/es/React/render.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/antd/es/form/validateMessagesContext.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/locale-provider/index.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/antd/es/message/index.js","../node_modules/antd/es/message/hooks/useMessage.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","components/common/LoginRequest.tsx","images/reward.svg","components/liquidity/index.tsx","components/marketApp/marketToken/TokenItem.tsx","components/marketApp/marketToken/TokenList.tsx","hooks/useLocalStore.tsx","components/marketApp/index.tsx","components/leaderboard/leaderboardToken/TokenItem.tsx","components/leaderboard/leaderboardToken/TokenList.tsx","components/leaderboard/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/HeartFilled.js","../node_modules/@ant-design/icons/es/icons/HeartFilled.js","../node_modules/@ant-design/react-slick/es/initial-state.js","../node_modules/throttle-debounce/debounce.js","../node_modules/throttle-debounce/throttle.js","../node_modules/@ant-design/react-slick/es/utils/innerSliderUtils.js","../node_modules/@ant-design/react-slick/es/track.js","../node_modules/@ant-design/react-slick/es/dots.js","../node_modules/@ant-design/react-slick/es/arrows.js","../node_modules/@ant-design/react-slick/es/inner-slider.js","../node_modules/@ant-design/react-slick/es/default-props.js","../node_modules/@ant-design/react-slick/es/slider.js","../node_modules/@ant-design/react-slick/es/index.js","../node_modules/antd/es/carousel/index.js","components/marketplace.tsx","components/asset/AssetTokenItem.tsx","components/asset/AssetTokenList.tsx","hooks/useImageExist.tsx","hooks/useCurrentNft.tsx","components/asset/AssetNftItem.tsx","components/asset/AssetNftList.tsx","components/asset/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useLegacyItems.js","../node_modules/antd/es/tabs/TabPane.js","../node_modules/antd/es/tabs/index.js","components/myBalance/components/TotalBalance.tsx","components/myBalance/components/BalanceTokenItem.tsx","components/myBalance/hooks/useMinimumDollar.tsx","components/popup/actions/Withdraw.tsx","components/myBalance/balance-deposit/BalanceDepositItem.tsx","components/myBalance/balance-deposit/BalanceDeposit.tsx","components/popup/actions/Repay.tsx","components/myBalance/balance-borrow/BalanceBorrowItem.tsx","components/myBalance/balance-borrow/BalanceBorrow.tsx","components/myBalance/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/SwapLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ShareAltOutlined.js","../node_modules/@ant-design/icons/es/icons/ShareAltOutlined.js","../node_modules/antd/es/input/Group.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-input/es/Input.js","../node_modules/rc-input/es/index.js","../node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/utils.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/antd/es/input/Password.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/antd/es/_util/raf.js","../node_modules/antd/es/_util/wave.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/antd/es/input/Search.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/antd/es/input/ClearableLabeledInput.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/index.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","components/popup/messages/CommingSoon.tsx","components/nft-detail.tsx","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/context/StickyContext.js","../node_modules/rc-table/es/context/HoverContext.js","../node_modules/rc-table/es/ContextSelector/index.js","../node_modules/rc-table/es/context/BodyContext.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/context/ExpandedRowContext.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/context/ResizeContext.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/constant.js","../node_modules/rc-table/es/hooks/useColumns.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/index.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/_util/responsiveObserve.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/KeyCode.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/BaseSelect.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/antd/es/pagination/Select.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/table/util.js","../node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","../node_modules/@ant-design/icons/es/icons/FilterFilled.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/menu/index.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/utils/keyUtil.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/useUnmount.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/rc-tree/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","../node_modules/@ant-design/icons/es/icons/HolderOutlined.js","../node_modules/antd/es/tree/utils/dropIndicator.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../node_modules/@ant-design/icons/es/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","../node_modules/antd/es/tree/Tree.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOutlined.js","../node_modules/antd/es/tree/utils/dictUtil.js","../node_modules/antd/es/tree/DirectoryTree.js","../node_modules/antd/es/tree/index.js","../node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/_util/hooks/useSyncState.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/index.js","../node_modules/antd/es/_util/ActionButton.js","../node_modules/antd/es/modal/Modal.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","components/vaults/common.tsx","components/vaults/ModalVaults.tsx","hooks/useNearDev.tsx","components/vaults/TopBox.tsx","images/neld.svg","components/vaults/TabsHead.tsx","components/common/Pagination/index.tsx","components/vaults/index.tsx","components/white-paper.tsx","images/new_logo/banner.svg","components/common/Lines.tsx","images/banner/grid-banner.svg","images/3DCoin/BIT.svg","images/3DCoin/NEAR.svg","components/homepage/Banner.tsx","images/bgInvester.svg","components/homepage/Invester.tsx","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/grid/row.js","../node_modules/antd/es/row/index.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/col/index.js","../node_modules/antd/es/skeleton/Element.js","../node_modules/antd/es/skeleton/Avatar.js","../node_modules/antd/es/skeleton/Button.js","../node_modules/@ant-design/icons-svg/es/asn/DotChartOutlined.js","../node_modules/@ant-design/icons/es/icons/DotChartOutlined.js","../node_modules/antd/es/skeleton/Node.js","../node_modules/antd/es/skeleton/Image.js","../node_modules/antd/es/skeleton/Input.js","../node_modules/antd/es/skeleton/Paragraph.js","../node_modules/antd/es/skeleton/Title.js","../node_modules/antd/es/skeleton/Skeleton.js","../node_modules/antd/es/skeleton/index.js","../node_modules/antd/es/card/Grid.js","../node_modules/antd/es/card/Card.js","../node_modules/antd/es/card/Meta.js","../node_modules/antd/es/card/index.js","components/homepage/Solution.tsx","images/bgOverView2.svg","components/homepage/index.tsx","routes/intro.tsx","images/market.svg","images/market_active.svg","images/balance.svg","images/balance_active.svg","routes/index.tsx","Contexts/AppContext.tsx","images/MenuOutlined.svg","components/header/header.tsx","components/main.tsx","utils/connect/oracle.tsx","Contexts/AppInit.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\n/**\n * This class is used to store keys in the browsers local storage.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores } from 'near-api-js';\n *\n * const keyStore = new keyStores.BrowserLocalStorageKeyStore();\n * const config = {\n * keyStore, // instance of BrowserLocalStorageKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass BrowserLocalStorageKeyStore extends keystores_1.KeyStore {\n /**\n * @param localStorage defaults to window.localStorage\n * @param prefix defaults to `near-api-js:keystore:`\n */\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Stores a {@link KeyPair} in local storage.\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n });\n }\n /**\n * Gets a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n });\n }\n /**\n * Removes all items that start with `prefix` from local storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n });\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n });\n }\n /**\n * @hidden\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage key that's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n /** @hidden */\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystore_1 = require(\"./keystore\");\n/**\n * Simple in-memory keystore for mainly for testing purposes.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores, utils } from 'near-api-js';\n *\n * const privateKey = '.......';\n * const keyPair = utils.KeyPair.fromString(privateKey);\n *\n * const keyStore = new keyStores.InMemoryKeyStore();\n * keyStore.setKey('testnet', 'example-account.testnet', keyPair);\n *\n * const config = {\n * keyStore, // instance of InMemoryKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Stores a {@link KeyPair} in in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n });\n }\n /**\n * Gets a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n delete this.keys[`${accountId}:${networkId}`];\n });\n }\n /**\n * Removes all {@link KeyPair} from in-memory storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys = {};\n });\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n });\n }\n /** @hidden */\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.KeyStore = exports.InMemoryKeyStore = void 0;\nvar in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nvar keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nvar merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * KeyStores are passed to {@link \"@near-js/wallet-account\".near.Near | Near} via {@link \"@near-js/wallet-account\".near.NearConfig | NearConfig}\n * and are used by the {@link \"@near-js/signers\".in_memory_signer.InMemorySigner | InMemorySigner} to sign transactions.\n *\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores read calls are attempted from start to end of array\n * @param options KeyStore options\n * @param options.writeKeyStoreIndex the keystore index that will receive all write calls\n */\n constructor(keyStores, options = { writeKeyStoreIndex: 0 }) {\n super();\n this.options = options;\n this.keyStores = keyStores;\n }\n /**\n * Store a {@link KeyPair} to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.keyStores[this.options.writeKeyStoreIndex].setKey(networkId, accountId, keyPair);\n });\n }\n /**\n * Gets a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n const keyPair = yield keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n });\n }\n /**\n * Removes a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.removeKey(networkId, accountId);\n }\n });\n }\n /**\n * Removes all items from each key store\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.clear();\n }\n });\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of yield keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n });\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of yield keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n });\n }\n /** @hidden */\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exponentialBackoff = void 0;\nfunction exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = yield getResult();\n if (result) {\n return result;\n }\n yield sleep(waitTime);\n waitTime *= waitBackoff;\n }\n return null;\n });\n}\nexports.exponentialBackoff = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\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 });\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst http_1 = __importDefault(require(\"http\"));\nconst https_1 = __importDefault(require(\"https\"));\nconst httpAgent = new http_1.default.Agent({ keepAlive: true });\nconst httpsAgent = new https_1.default.Agent({ keepAlive: true });\nfunction agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n}\nfunction default_1(resource, init) {\n return (0, node_fetch_1.default)(resource, Object.assign({ agent: agent(new URL(resource.toString())) }, init));\n}\nexports.default = default_1;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n/**\n * Performs an HTTP request to a specified URL or connection and returns the parsed JSON response.\n * @param connectionInfoOrUrl The connection information or URL for the HTTP request.\n * @param json The JSON payload to be included in the request body for POST requests.\n * @returns A Promise that resolves to the parsed JSON response from the HTTP request.\n */\nfunction fetchJson(connectionInfoOrUrl, json) {\n return __awaiter(this, void 0, void 0, function* () {\n let connectionInfo = { url: null };\n if (typeof (connectionInfoOrUrl) === 'string') {\n connectionInfo.url = connectionInfoOrUrl;\n }\n else {\n connectionInfo = connectionInfoOrUrl;\n }\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield ((_a = global.fetch) !== null && _a !== void 0 ? _a : (yield Promise.resolve().then(() => __importStar(require('./fetch')))).default)(connectionInfo.url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: Object.assign(Object.assign({}, connectionInfo.headers), { 'Content-Type': 'application/json' })\n });\n if (!response.ok) {\n if (response.status === 503) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as it's not available now`);\n return null;\n }\n else if (response.status === 408) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as the previous connection was unused for some time`);\n return null;\n }\n throw (0, http_errors_1.default)(response.status, yield response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n }));\n if (!response) {\n throw new types_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${connectionInfo.url}.`, 'RetriesExceeded');\n }\n return yield response.json();\n });\n}\nexports.fetchJson = fetchJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = exports.Provider = exports.JsonRpcProvider = exports.exponentialBackoff = void 0;\nvar exponential_backoff_1 = require(\"./exponential-backoff\");\nObject.defineProperty(exports, \"exponentialBackoff\", { enumerable: true, get: function () { return exponential_backoff_1.exponentialBackoff; } });\nvar json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nvar provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nvar fetch_json_1 = require(\"./fetch_json\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return fetch_json_1.fetchJson; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link JsonRpcProvider} client class\n * which can be used to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst provider_1 = require(\"./provider\");\nconst fetch_json_1 = require(\"./fetch_json\");\n/** @hidden */\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass JsonRpcProvider extends provider_1.Provider {\n /**\n * @param connectionInfo Connection info\n */\n constructor(connectionInfo) {\n super();\n this.connection = connectionInfo || { url: '' };\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('status', []);\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('broadcast_tx_commit', [Buffer.from(bytes).toString('base64')]);\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('broadcast_tx_async', [Buffer.from(bytes).toString('base64')]);\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n */\n txStatus(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.txStatusString(txHash, accountId);\n }\n else {\n return this.txStatusUint8Array(txHash, accountId);\n }\n });\n }\n txStatusUint8Array(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', [(0, utils_1.baseEncode)(txHash), accountId]);\n });\n }\n txStatusString(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', [txHash, accountId]);\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [txHash, accountId]);\n }\n else {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [(0, utils_1.baseEncode)(txHash), accountId]);\n }\n });\n }\n /**\n * Query the RPC by passing an {@link \"@near-js/types\".provider/request.RpcQueryRequest | RpcQueryRequest }\n * @see [https://docs.near.org/api/rpc/contracts](https://docs.near.org/api/rpc/contracts)\n *\n * @typeParam T the shape of the returned query response\n */\n query(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (args.length === 1) {\n const _a = args[0], { block_id, blockId } = _a, otherParams = __rest(_a, [\"block_id\", \"blockId\"]);\n result = yield this.sendJsonRpc('query', Object.assign(Object.assign({}, otherParams), { block_id: block_id || blockId }));\n }\n else {\n const [path, data] = args;\n result = yield this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new types_1.TypedError(`Querying failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, (0, utils_1.getErrorTypeFromErrorMessage)(result.error, result.error.name));\n }\n return result;\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes_in_block', { block_id: blockId, finality });\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('chunk', [chunkId]);\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('validators', [blockId]);\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n const _a = blockReference, { blockId } = _a, otherParams = __rest(_a, [\"blockId\"]);\n return yield this.sendJsonRpc('EXPERIMENTAL_protocol_config', Object.assign(Object.assign({}, otherParams), { block_id: blockId }));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('next_light_client_block', request);\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'all_access_key_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'single_access_key_changes',\n keys: accessKeyArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'account_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'data_changes',\n account_ids: accountIdArray,\n key_prefix_base64: keyPrefix,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'contract_code_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('gas_price', [blockId]);\n });\n }\n /**\n * Directly call the RPC specifying the method and params\n *\n * @param method RPC method\n * @param params Parameters to the method\n */\n sendJsonRpc(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(REQUEST_RETRY_WAIT, REQUEST_RETRY_NUMBER, REQUEST_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = yield (0, fetch_json_1.fetchJson)(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new types_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw (0, utils_1.parseRpcError)(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new types_1.TypedError(errorMessage, 'TimeoutError');\n }\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.error.data, '');\n if (errorType) {\n throw new types_1.TypedError((0, utils_1.formatError)(errorType, params), errorType);\n }\n throw new types_1.TypedError(errorMessage, response.error.name);\n }\n }\n else if (typeof ((_a = response.result) === null || _a === void 0 ? void 0 : _a.error) === 'string') {\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.result.error, '');\n if (errorType) {\n throw new utils_1.ServerError((0, utils_1.formatError)(errorType, params), errorType);\n }\n }\n // Success when response.error is not exist\n return response;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n utils_1.Logger.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n }));\n const { result } = response;\n // From jsonrpc spec:\n // result\n // This member is REQUIRED on success.\n // This member MUST NOT exist if there was an error invoking the method.\n if (typeof result === 'undefined') {\n throw new types_1.TypedError(`Exceeded ${REQUEST_RETRY_NUMBER} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n });\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Provider = void 0;\n/** @hidden */\nclass Provider {\n}\nexports.Provider = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = void 0;\nvar near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nvar wallet_account_1 = require(\"./wallet_account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\n/**\n * This module contains the main class developers will use to interact with NEAR.\n * The {@link Near} class is used to interact with {@link \"@near-js/accounts\".account.Account | Account} through the {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider}.\n * It is configured via the {@link NearConfig}.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#account](https://docs.near.org/tools/near-api-js/quick-reference#account)\n *\n * @module near\n */\nconst accounts_1 = require(\"@near-js/accounts\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * This is the main class developers should use to interact with NEAR.\n * @example\n * ```js\n * const near = new Near(config);\n * ```\n */\nclass Near {\n constructor(config) {\n var _a;\n this.config = config;\n this.connection = accounts_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: { type: 'JsonRpcProvider', args: { url: config.nodeUrl, headers: config.headers } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || ((_a = config.deps) === null || _a === void 0 ? void 0 : _a.keyStore) },\n jsvmAccountId: config.jsvmAccountId || `jsvm.${config.networkId}`\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? new bn_js_1.default(config.initialBalance) : new bn_js_1.default('500000000000000000000000000');\n this.accountCreator = new accounts_1.LocalAccountCreator(new accounts_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new accounts_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n * @param accountId near accountId used to interact with the network.\n */\n account(accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const account = new accounts_1.Account(this.connection, accountId);\n return account;\n });\n }\n /**\n * Create an account using the {@link AccountCreator}. Either:\n * * using a masterAccount with {@link LocalAccountCreator}\n * * using the helperUrl with {@link UrlAccountCreator}\n * @see {@link NearConfig#masterAccount} and {@link NearConfig#helperUrl}\n *\n * @param accountId\n * @param publicKey\n */\n createAccount(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n yield this.accountCreator.createAccount(accountId, publicKey);\n return new accounts_1.Account(this.connection, accountId);\n });\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletConnection = void 0;\n/**\n * This module exposes two classes:\n * * {@link WalletConnection} which redirects users to [NEAR Wallet](https://wallet.near.org/) for key management.\n * * {@link ConnectedWalletAccount} is an {@link \"@near-js/accounts\".account.Account | Account} implementation that uses {@link WalletConnection} to get keys\n *\n * @module walletAccount\n */\nconst accounts_1 = require(\"@near-js/accounts\");\nconst crypto_1 = require(\"@near-js/crypto\");\nconst utils_1 = require(\"@near-js/utils\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst borsh_1 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\n/**\n * This class is not intended for use outside the browser. Without `window` (i.e. in server contexts), it will instantiate but will throw a clear error when used.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#wallet](https://docs.near.org/tools/near-api-js/quick-reference#wallet)\n * @example\n * ```js\n * // create new WalletConnection instance\n * const wallet = new WalletConnection(near, 'my-app');\n *\n * // If not signed in redirect to the NEAR wallet to sign in\n * // keys will be stored in the BrowserLocalStorageKeyStore\n * if(!wallet.isSignedIn()) return wallet.requestSignIn()\n * ```\n */\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n if (typeof (appKeyPrefix) !== 'string') {\n throw new Error('Please define a clear appKeyPrefix for this WalletConnection instance as the second argument to the constructor');\n }\n if (typeof window === 'undefined') {\n return new Proxy(this, {\n get(target, property) {\n if (property === 'isSignedIn') {\n return () => false;\n }\n if (property === 'getAccountId') {\n return () => '';\n }\n if (target[property] && typeof target[property] === 'function') {\n return () => {\n throw new Error('No window found in context, please ensure you are using WalletConnection on the browser');\n };\n }\n return target[property];\n }\n });\n }\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInPromise = this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletConnection is authorized with the wallet.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn();\n * ```\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns promise of completing signing in after redirecting from wallet\n * @example\n * ```js\n * // on login callback page\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn(); // false\n * await wallet.isSignedInAsync(); // true\n * ```\n */\n isSignedInAsync() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._completeSignInPromise) {\n return this.isSignedIn();\n }\n yield this._completeSignInPromise;\n return this.isSignedIn();\n });\n }\n /**\n * Returns authorized Account ID.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.getAccountId();\n * ```\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Constructs string URL to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // return string URL to the NEAR Wallet\n * const url = await wallet.requestSignInUrl({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignInUrl({ contractId, methodNames, successUrl, failureUrl }) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', failureUrl || currentUrl.href);\n if (contractId) {\n /* Throws exception if contract account does not exist */\n const contractAccount = yield this._near.account(contractId);\n yield contractAccount.state();\n newUrl.searchParams.set('contract_id', contractId);\n const accessKey = crypto_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n yield this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n if (methodNames) {\n methodNames.forEach(methodName => {\n newUrl.searchParams.append('methodNames', methodName);\n });\n }\n return newUrl.toString();\n });\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // redirects to the NEAR Wallet\n * wallet.requestSignIn({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignIn(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = yield this.requestSignInUrl(options);\n window.location.assign(url);\n });\n }\n /**\n * Constructs string URL to the wallet to sign a transaction or batch of transactions.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactionsUrl({ transactions, meta, callbackUrl }) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => (0, borsh_1.serialize)(transactions_1.SCHEMA.Transaction, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n if (meta)\n newUrl.searchParams.set('meta', meta);\n return newUrl.toString();\n }\n /**\n * Requests the user to quickly sign for a transaction or batch of transactions by redirecting to the wallet.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactions(options) {\n const url = this.requestSignTransactionsUrl(options);\n window.location.assign(url);\n }\n /**\n * @hidden\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n _completeSignInWithAccessKey() {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n const authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(authData));\n if (publicKey) {\n yield this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n this._authData = authData;\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n currentUrl.searchParams.delete('meta');\n currentUrl.searchParams.delete('transactionHashes');\n window.history.replaceState({}, document.title, currentUrl.toString());\n });\n }\n /**\n * @hidden\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n _moveKeyFromTempToPermanent(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n yield this._keyStore.setKey(this._networkId, accountId, keyPair);\n yield this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n });\n }\n /**\n * Sign out from the current account\n * @example\n * walletConnection.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using {@link WalletConnection} when no local key is available.\n */\nclass ConnectedWalletAccount extends accounts_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n /**\n * Sign a transaction by redirecting to the NEAR Wallet\n * @see {@link WalletConnection#requestSignTransactions}\n * @param options An optional options object\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions An array of transaction actions to be performed.\n * @param options.walletMeta Additional metadata to be included in the wallet signing request.\n * @param options.walletCallbackUrl URL to redirect upon completion of the wallet signing process. Default: current URL.\n */\n signAndSendTransaction({ receiverId, actions, walletMeta, walletCallbackUrl = window.location.href }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const localKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = yield this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n }\n catch (e) {\n if (e.type === 'NotEnoughAllowance') {\n accessKey = yield this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = (0, utils_1.baseDecode)(block.header.hash);\n const publicKey = crypto_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce.add(new bn_js_1.default(1));\n const transaction = (0, transactions_1.createTransaction)(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n yield this.walletConnection.requestSignTransactions({\n transactions: [transaction],\n meta: walletMeta,\n callbackUrl: walletCallbackUrl\n });\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TransactionQueue which also can be used to watch for status?\n });\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of \\{access_key: AccessKey, public_key: PublicKey\\} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n });\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n */\n accessKeyForTransaction(receiverId, actions, localKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeys = yield this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key.toString() === localKey.toString());\n if (accessKey && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n return null;\n });\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return accounts_1.Account; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return accounts_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return accounts_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return accounts_1.UrlAccountCreator; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.AccountMultisig = exports.Account2FA = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return accounts_1.Account2FA; } });\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return accounts_1.AccountMultisig; } });\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return accounts_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return accounts_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return accounts_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CONFIRM_METHODS; } });\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return accounts_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return accounts_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\n/**\n * Connect to NEAR using the provided configuration.\n *\n * {@link ConnectConfig#networkId} and {@link ConnectConfig#nodeUrl} are required.\n *\n * To sign transactions you can also pass: {@link ConnectConfig#keyStore}\n *\n * Both are passed they are prioritize in that order.\n *\n * @see {@link ConnectConfig}\n * @example\n * ```js\n * async function initNear() {\n * const near = await connect({\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org'\n * })\n * }\n * ```\n *\n * @module browserConnect\n */\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nfunction connect(config) {\n return __awaiter(this, void 0, void 0, function* () {\n return new near_1.Near(config);\n });\n}\nexports.connect = connect;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keyStores = void 0;\n/** @hidden @module */\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\n/** @hidden @module */\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return accounts_1.Connection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return accounts_1.Contract; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\n/** @hidden @module */\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar keystores_browser_1 = require(\"@near-js/keystores-browser\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return keystores_browser_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return keystores_1.InMemoryKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystores_1.KeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return keystores_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return wallet_account_1.Near; } });\n","\"use strict\";\n/** @hidden @module */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.TypedError = exports.ErrorContext = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return providers_1.JsonRpcProvider; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = exports.Provider = exports.getTransactionLastResult = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return utils_1.getTransactionLastResult; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return providers_1.Provider; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return types_1.IdType; } });\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar signers_1 = require(\"@near-js/signers\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signers_1.InMemorySigner; } });\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signers_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transfer = exports.stake = exports.functionCallAccessKey = exports.functionCall = exports.fullAccessKey = exports.deployContract = exports.deleteKey = exports.deleteAccount = exports.createAccount = exports.addKey = exports.encodeDelegateAction = exports.encodeSignedDelegate = exports.Transaction = exports.SignedTransaction = exports.Signature = exports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Transfer = exports.Stake = exports.FunctionCallPermission = exports.FunctionCall = exports.FullAccessPermission = exports.DeployContract = exports.DeleteKey = exports.DeleteAccount = exports.CreateAccount = exports.AddKey = exports.AccessKeyPermission = exports.AccessKey = exports.Action = exports.stringifyJsonOrBytes = void 0;\nvar transactions_1 = require(\"@near-js/transactions\");\nObject.defineProperty(exports, \"stringifyJsonOrBytes\", { enumerable: true, get: function () { return transactions_1.stringifyJsonOrBytes; } });\nObject.defineProperty(exports, \"Action\", { enumerable: true, get: function () { return transactions_1.Action; } });\nObject.defineProperty(exports, \"AccessKey\", { enumerable: true, get: function () { return transactions_1.AccessKey; } });\nObject.defineProperty(exports, \"AccessKeyPermission\", { enumerable: true, get: function () { return transactions_1.AccessKeyPermission; } });\nObject.defineProperty(exports, \"AddKey\", { enumerable: true, get: function () { return transactions_1.AddKey; } });\nObject.defineProperty(exports, \"CreateAccount\", { enumerable: true, get: function () { return transactions_1.CreateAccount; } });\nObject.defineProperty(exports, \"DeleteAccount\", { enumerable: true, get: function () { return transactions_1.DeleteAccount; } });\nObject.defineProperty(exports, \"DeleteKey\", { enumerable: true, get: function () { return transactions_1.DeleteKey; } });\nObject.defineProperty(exports, \"DeployContract\", { enumerable: true, get: function () { return transactions_1.DeployContract; } });\nObject.defineProperty(exports, \"FullAccessPermission\", { enumerable: true, get: function () { return transactions_1.FullAccessPermission; } });\nObject.defineProperty(exports, \"FunctionCall\", { enumerable: true, get: function () { return transactions_1.FunctionCall; } });\nObject.defineProperty(exports, \"FunctionCallPermission\", { enumerable: true, get: function () { return transactions_1.FunctionCallPermission; } });\nObject.defineProperty(exports, \"Stake\", { enumerable: true, get: function () { return transactions_1.Stake; } });\nObject.defineProperty(exports, \"Transfer\", { enumerable: true, get: function () { return transactions_1.Transfer; } });\nObject.defineProperty(exports, \"SCHEMA\", { enumerable: true, get: function () { return transactions_1.SCHEMA; } });\nObject.defineProperty(exports, \"createTransaction\", { enumerable: true, get: function () { return transactions_1.createTransaction; } });\nObject.defineProperty(exports, \"signTransaction\", { enumerable: true, get: function () { return transactions_1.signTransaction; } });\nObject.defineProperty(exports, \"Signature\", { enumerable: true, get: function () { return transactions_1.Signature; } });\nObject.defineProperty(exports, \"SignedTransaction\", { enumerable: true, get: function () { return transactions_1.SignedTransaction; } });\nObject.defineProperty(exports, \"Transaction\", { enumerable: true, get: function () { return transactions_1.Transaction; } });\nObject.defineProperty(exports, \"encodeSignedDelegate\", { enumerable: true, get: function () { return transactions_1.encodeSignedDelegate; } });\nObject.defineProperty(exports, \"encodeDelegateAction\", { enumerable: true, get: function () { return transactions_1.encodeDelegateAction; } });\nconst transactions_2 = require(\"@near-js/transactions\");\nconst addKey = (publicKey, accessKey) => transactions_2.actionCreators.addKey(publicKey, accessKey);\nexports.addKey = addKey;\nconst createAccount = () => transactions_2.actionCreators.createAccount();\nexports.createAccount = createAccount;\nconst deleteAccount = (beneficiaryId) => transactions_2.actionCreators.deleteAccount(beneficiaryId);\nexports.deleteAccount = deleteAccount;\nconst deleteKey = (publicKey) => transactions_2.actionCreators.deleteKey(publicKey);\nexports.deleteKey = deleteKey;\nconst deployContract = (code) => transactions_2.actionCreators.deployContract(code);\nexports.deployContract = deployContract;\nconst fullAccessKey = () => transactions_2.actionCreators.fullAccessKey();\nexports.fullAccessKey = fullAccessKey;\nconst functionCall = (methodName, args, gas, deposit, stringify, jsContract) => transactions_2.actionCreators.functionCall(methodName, args, gas, deposit, stringify, jsContract);\nexports.functionCall = functionCall;\nconst functionCallAccessKey = (receiverId, methodNames, allowance) => transactions_2.actionCreators.functionCallAccessKey(receiverId, methodNames, allowance);\nexports.functionCallAccessKey = functionCallAccessKey;\nconst stake = (stake, publicKey) => transactions_2.actionCreators.stake(stake, publicKey);\nexports.stake = stake;\nconst transfer = (deposit) => transactions_2.actionCreators.transfer(deposit);\nexports.transfer = transfer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enum = exports.Assignable = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"Assignable\", { enumerable: true, get: function () { return types_1.Assignable; } });\n/** @hidden @module */\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = exports.TypedError = exports.PositionalArgsError = exports.ErrorContext = exports.ArgumentTypeError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return accounts_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return accounts_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return accounts_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return accounts_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ArgumentTypeError\", { enumerable: true, get: function () { return types_1.ArgumentTypeError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"PositionalArgsError\", { enumerable: true, get: function () { return types_1.PositionalArgsError; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return utils_1.logWarning; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION_EXP = exports.NEAR_NOMINATION = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"NEAR_NOMINATION\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION; } });\nObject.defineProperty(exports, \"NEAR_NOMINATION_EXP\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION_EXP; } });\nObject.defineProperty(exports, \"formatNearAmount\", { enumerable: true, get: function () { return utils_1.formatNearAmount; } });\nObject.defineProperty(exports, \"parseNearAmount\", { enumerable: true, get: function () { return utils_1.parseNearAmount; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = exports.logWarning = exports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nconst logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyType = exports.KeyPairEd25519 = exports.KeyPair = void 0;\nvar crypto_1 = require(\"@near-js/crypto\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return crypto_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return crypto_1.KeyPairEd25519; } });\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return crypto_1.KeyType; } });\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return crypto_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return utils_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServerError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return utils_1.parseRpcError; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return utils_1.parseResultError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return utils_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return utils_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return utils_1.ServerError; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base_decode = exports.base_encode = exports.deserialize = exports.serialize = void 0;\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return utils_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return utils_1.baseDecode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return providers_1.fetchJson; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findSeatPrice = exports.diffEpochValidators = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"diffEpochValidators\", { enumerable: true, get: function () { return utils_1.diffEpochValidators; } });\nObject.defineProperty(exports, \"findSeatPrice\", { enumerable: true, get: function () { return utils_1.findSeatPrice; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","\"use strict\";\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.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.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nconst textDecoder = new ResolvedTextDecoder(\"utf-8\", { fatal: true });\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n value = Buffer.from(value, \"utf8\");\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([\n Buffer.from(this.buf.subarray(0, this.length)),\n buffer,\n Buffer.alloc(INITIAL_LENGTH),\n ]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, \"utf8\");\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n throw new BorshError(\"Reached the end of buffer when deserializing\");\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, \"le\");\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, \"le\");\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, \"le\");\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, \"le\");\n }\n readBuffer(len) {\n if (this.offset + len > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === \"string\") {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n if (value.length !== fieldType[1]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n }\n for (let i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n }\n else {\n writer.writeArray(value, (item) => {\n serializeField(schema, fieldName, item, fieldType[0], writer);\n });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case \"option\": {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n case \"map\": {\n writer.writeU32(value.size);\n value.forEach((val, key) => {\n serializeField(schema, fieldName, key, fieldType.key, writer);\n serializeField(schema, fieldName, val, fieldType.value, writer);\n });\n break;\n }\n default:\n throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === \"function\") {\n obj.borshSerialize(writer);\n return;\n }\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === \"enum\") {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n const writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === \"string\") {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n return reader.readFixedArray(fieldType[0]);\n }\n else if (typeof fieldType[1] === \"number\") {\n const arr = [];\n for (let i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n return arr;\n }\n else {\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n }\n if (fieldType.kind === \"option\") {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n if (fieldType.kind === \"map\") {\n let map = new Map();\n const length = reader.readU32();\n for (let i = 0; i < length; i++) {\n const key = deserializeField(schema, fieldName, fieldType.key, reader);\n const val = deserializeField(schema, fieldName, fieldType.value, reader);\n map.set(key, val);\n }\n return map;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === \"function\") {\n return classType.borshDeserialize(reader);\n }\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === \"enum\") {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","\nimport type {\n BrowserWallet,\n WalletModule,\n WalletModuleFactory,\n} from '@near-wallet-selector/core';\nimport { BitteWallet } from './bitte-wallet';\nimport { resolveBitteWallet } from './utils';\n \n interface BitteWalletSetup {\n callbackUrl?: string;\n successUrl?: string;\n walletUrl?: string;\n failureUrl?: string;\n deprecated?: boolean;\n contractId?: string;\n lak?: boolean;\n }\n \n const icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTUiIGhlaWdodD0iOTUiIHZpZXdCb3g9IjAgMCA5NSA5NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjc3NjE3IDU5LjE4MjZMNjIuNzIyNyA2My4zMTNDNjMuMTE4NSA2My40MzA5IDYzLjQ3ODggNjMuNjQ1NiA2My43NzA4IDYzLjkzNzdDNjQuMDYyOSA2NC4yMjk3IDY0LjI3NzUgNjQuNTg5OSA2NC4zOTU0IDY0Ljk4NThMNjguNTI1OSA3OC44NTU1QzY4LjY3ODcgNzkuMzY4NiA2OC45OTMyIDc5LjgxODYgNjkuNDIyNCA4MC4xMzg3QzY5Ljg1MTYgODAuNDU4NyA3MC4zNzI3IDgwLjYzMTYgNzAuOTA4MiA4MC42MzE2QzcxLjQ0MzYgODAuNjMxNiA3MS45NjQ3IDgwLjQ1ODcgNzIuMzkzOSA4MC4xMzg3QzcyLjgyMzEgNzkuODE4NiA3My4xMzc2IDc5LjM2ODYgNzMuMjkwNCA3OC44NTU1TDc3LjQyMDkgNjQuOTg1OEM3Ny41Mzg4IDY0LjU4OTkgNzcuNzUzNCA2NC4yMjk3IDc4LjA0NTUgNjMuOTM3N0M3OC4zMzc2IDYzLjY0NTYgNzguNjk3OCA2My40MzA5IDc5LjA5MzYgNjMuMzEzTDkyLjk2MzMgNTkuMTgyNkM5My40NzY0IDU5LjAyOTcgOTMuOTI2NSA1OC43MTUzIDk0LjI0NjYgNTguMjg2MUM5NC41NjY2IDU3Ljg1NjggOTQuNzM5NSA1Ny4zMzU3IDk0LjczOTUgNTYuODAwM0M5NC43Mzk1IDU2LjI2NDkgOTQuNTY2NiA1NS43NDM4IDk0LjI0NjYgNTUuMzE0NkM5My45MjY1IDU0Ljg4NTMgOTMuNDc2NCA1NC41NzA5IDkyLjk2MzMgNTQuNDE4MUw3OS4wOTM3IDUwLjI4NzZDNzguNjk3OCA1MC4xNjk3IDc4LjMzNzYgNDkuOTU1IDc4LjA0NTUgNDkuNjYzQzc3Ljc1MzUgNDkuMzcwOSA3Ny41Mzg4IDQ5LjAxMDcgNzcuNDIwOSA0OC42MTQ4TDczLjI5MDQgMzQuNzQ1MkM3My4xMzc2IDM0LjIzMiA3Mi44MjMyIDMzLjc4MTkgNzIuMzkzOSAzMy40NjE5QzcxLjk2NDcgMzMuMTQxOSA3MS40NDM2IDMyLjk2OSA3MC45MDgyIDMyLjk2OUM3MC4zNzI4IDMyLjk2OSA2OS44NTE3IDMzLjE0MTkgNjkuNDIyNCAzMy40NjE5QzY4Ljk5MzIgMzMuNzgxOSA2OC42Nzg4IDM0LjIzMiA2OC41MjYgMzQuNzQ1Mkw2NC4zOTU0IDQ4LjYxNDhDNjQuMjc3NiA0OS4wMTA3IDY0LjA2MjkgNDkuMzcwOSA2My43NzA4IDQ5LjY2M0M2My40Nzg4IDQ5Ljk1NSA2My4xMTg1IDUwLjE2OTcgNjIuNzIyNyA1MC4yODc2TDEuNzc2MTggNTQuNDE4MUMxLjI2MzA1IDU0LjU3MDkgMC44MTI5NTYgNTQuODg1MyAwLjQ5MjkyIDU1LjMxNDZDMC4xNzI4ODQgNTUuNzQzOCAyLjI0NzU1ZS0wNiA1Ni4yNjQ5IDAgNTYuODAwM0MtMi4yNDc1MWUtMDYgNTcuMzM1NyAwLjE3Mjg4NyA1Ny44NTY4IDAuNDkyOTIgNTguMjg2MUMwLjgxMjk1MyA1OC43MTUzIDEuMjYzMDMgNTkuMDI5NyAxLjc3NjE3IDU5LjE4MjZaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMyLjE2MzcgMjkuNDg2OEw0MC4zNTc4IDMxLjkyNzFDNDAuNTkxNyAzMS45OTY3IDQwLjgwNDUgMzIuMTIzNiA0MC45NzcgMzIuMjk2MUM0MS4xNDk2IDMyLjQ2ODcgNDEuMjc2NCAzMi42ODE1IDQxLjM0NjEgMzIuOTE1NEw0My43ODYzIDQxLjEwOTVDNDMuODc2NiA0MS40MTI2IDQ0LjA2MjQgNDEuNjc4NSA0NC4zMTYgNDEuODY3NkM0NC41Njk2IDQyLjA1NjcgNDQuODc3NCA0Mi4xNTg4IDQ1LjE5MzcgNDIuMTU4OEM0NS41MTAxIDQyLjE1ODggNDUuODE3OSA0Mi4wNTY3IDQ2LjA3MTUgNDEuODY3NkM0Ni4zMjUxIDQxLjY3ODUgNDYuNTEwOSA0MS40MTI2IDQ2LjYwMTEgNDEuMTA5NUw0OS4wNDE0IDMyLjkxNTRDNDkuMTExMSAzMi42ODE1IDQ5LjIzNzkgMzIuNDY4NyA0OS40MTA0IDMyLjI5NjFDNDkuNTgzIDMyLjEyMzYgNDkuNzk1OCAzMS45OTY3IDUwLjAyOTcgMzEuOTI3MUw1OC4yMjM4IDI5LjQ4NjhDNTguNTI2OSAyOS4zOTY2IDU4Ljc5MjggMjkuMjEwOCA1OC45ODE5IDI4Ljk1NzJDNTkuMTcxIDI4LjcwMzYgNTkuMjczMSAyOC4zOTU4IDU5LjI3MzEgMjguMDc5NEM1OS4yNzMxIDI3Ljc2MzEgNTkuMTcxIDI3LjQ1NTMgNTguOTgxOSAyNy4yMDE3QzU4Ljc5MjggMjYuOTQ4MSA1OC41MjY5IDI2Ljc2MjMgNTguMjIzOCAyNi42NzJMNTAuMDI5NiAyNC4yMzE3QzQ5Ljc5NTggMjQuMTYyMSA0OS41ODI5IDI0LjAzNTIgNDkuNDEwNCAyMy44NjI3QzQ5LjIzNzkgMjMuNjkwMiA0OS4xMTEgMjMuNDc3MyA0OS4wNDE0IDIzLjI0MzRMNDYuNjAxMSAxNS4wNDkzQzQ2LjUxMDggMTQuNzQ2MiA0Ni4zMjUgMTQuNDgwMyA0Ni4wNzE1IDE0LjI5MTJDNDUuODE3OSAxNC4xMDIxIDQ1LjUxIDE0IDQ1LjE5MzcgMTRDNDQuODc3NCAxNCA0NC41Njk1IDE0LjEwMjEgNDQuMzE1OSAxNC4yOTEyQzQ0LjA2MjMgMTQuNDgwMyA0My44NzY2IDE0Ljc0NjIgNDMuNzg2MyAxNS4wNDkzTDQxLjM0NiAyMy4yNDM0QzQxLjI3NjQgMjMuNDc3MyA0MS4xNDk1IDIzLjY5MDIgNDAuOTc3IDIzLjg2MjdDNDAuODA0NCAyNC4wMzUyIDQwLjU5MTYgMjQuMTYyMSA0MC4zNTc4IDI0LjIzMTdMMzIuMTYzNyAyNi42NzJDMzEuODYwNSAyNi43NjIyIDMxLjU5NDYgMjYuOTQ4IDMxLjQwNTUgMjcuMjAxNkMzMS4yMTY0IDI3LjQ1NTIgMzEuMTE0MyAyNy43NjMxIDMxLjExNDMgMjguMDc5NEMzMS4xMTQzIDI4LjM5NTggMzEuMjE2NCAyOC43MDM3IDMxLjQwNTUgMjguOTU3MkMzMS41OTQ2IDI5LjIxMDggMzEuODYwNSAyOS4zOTY2IDMyLjE2MzcgMjkuNDg2OFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=';\n \n export function setupBitteWallet({\n walletUrl = '',\n deprecated = false,\n successUrl = '',\n failureUrl = '',\n callbackUrl = '',\n contractId = '',\n }: BitteWalletSetup = {}): WalletModuleFactory {\n \n return async (moduleOptions): Promise | null> => {\n \n const wallet: WalletModule = {\n id: 'bitte-wallet',\n type: 'browser',\n metadata: {\n name: 'Bitte Wallet',\n description:\n 'NEAR wallet to store, buy, send and stake assets for DeFi.',\n iconUrl: icon,\n deprecated,\n available: true,\n successUrl,\n failureUrl,\n walletUrl: resolveBitteWallet(moduleOptions.options.network.networkId, walletUrl),\n },\n init: (options) => {\n return BitteWallet({ callback: callbackUrl, networkId: moduleOptions.options.network.networkId, successUrl, failureUrl, contractId, ...options });\n },\n };\n return wallet;\n };\n }\n ","import * as nearAPI from 'near-api-js';\n\nimport type {\n Action,\n BrowserWallet,\n FinalExecutionOutcome,\n WalletBehaviourFactory,\n} from '@near-wallet-selector/core';\nimport { getCallbackUrl } from './utils';\nimport { createAction } from '@near-wallet-selector/wallet-utils';\n\n\nexport enum TransactionSuccessEnum {\n MINT = 'mint',\n TRANSFER = 'transfer',\n BURN = 'burn',\n DEPLOY_STORE = 'deploy-store',\n MAKE_OFFER = 'make-offer',\n REVOKE_MINTER = 'revoke-minter',\n ADD_MINTER = 'add-minter',\n TRANSFER_STORE_OWNERSHIP = 'transfer-store-ownership',\n AUCTION_LIST = 'list',\n SIMPLE_SALE_LIST = 'simple-sale-list',\n UNLIST = 'unlist',\n TAKE_OFFER = 'take-offer',\n WITHDRAW_OFFER = 'withdraw-offer',\n}\n\ninterface BitteWalletState {\n wallet: nearAPI.WalletConnection;\n}\n\ninterface BitteWalletAccount {\n accountId: string;\n publicKey: string;\n}\n\nexport type CallBackArgs = {\n args: object;\n type: TransactionSuccessEnum;\n}\n\n\nexport const BitteWallet: WalletBehaviourFactory<\n BrowserWallet,\n {\n networkId: string;\n callback: string;\n successUrl?: string;\n failureUrl?: string;\n contractId?: string;\n }\n> = async ({\n metadata,\n options,\n successUrl,\n failureUrl,\n contractId,\n callback,\n networkId,\n}) => {\n\n const setupWalletState = async (): Promise | null => {\n if (typeof window !== undefined) {\n const { connect, WalletConnection, keyStores } = nearAPI;\n const connectionConfig = {\n networkId: networkId,\n keyStore: new keyStores.BrowserLocalStorageKeyStore(),\n nodeUrl: options.network.nodeUrl,\n walletUrl: metadata.walletUrl,\n headers: {},\n };\n\n const searchParams = new URL(window.location.href);\n const acc = searchParams.searchParams.get('account_id');\n //make near-api-js not throw without lak\n if (acc && !contractId) {\n localStorage.setItem(\n 'mintbase-wallet_wallet_auth_key',\n JSON.stringify({\n accountId: acc as string,\n allKeys: [],\n }),\n );\n }\n\n const nearConnection = await connect(connectionConfig);\n const wallet = new WalletConnection(nearConnection, 'mintbase-wallet');\n localStorage.setItem('mintbase-wallet:callback_url', callback);\n\n return {\n wallet,\n };\n }\n\n return null;\n };\n\n const state = await setupWalletState();\n\n let activeAccountId: string;\n\n const getAccountId = (): string => activeAccountId;\n\n const isSignedIn = async (): Promise => !!activeAccountId;\n\n const signIn = async (): Promise => {\n const existingAccounts = await getAccounts();\n const href = encodeURI(window?.location?.href);\n\n if (existingAccounts.length) {\n return existingAccounts;\n }\n\n await state.wallet.requestSignIn({\n methodNames: [],\n successUrl: successUrl || href,\n failureUrl: failureUrl || href,\n contractId: contractId,\n });\n\n return getAccounts();\n };\n\n const signOut = async (): Promise => {\n window.localStorage.removeItem('mintbase-wallet:account-data');\n\n if (state.wallet.isSignedIn()) {\n state.wallet.signOut();\n }\n\n return;\n };\n\n\n const assertValidSigner = (signerId: string): void => {\n if (signerId && signerId !== state.wallet.getAccountId()) {\n throw new Error(\n `Cannot sign transactions for ${signerId} while signed in as ${activeAccountId}`,\n );\n }\n };\n\n const signAndSendTransactions = async ({ transactions, callbackUrl }): Promise => {\n if (!state.wallet.isSignedIn()) {\n throw new Error('Wallet not signed in');\n }\n //// near-api-js code fails if no lak\n // const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n // return state.wallet.requestSignTransactions({\n // transactions: await transformTransactions(transactions),\n // callbackUrl: cbUrl,\n // });\n\n const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n for (const { signerId } of transactions) {\n assertValidSigner(signerId);\n }\n const stringifiedParam = JSON.stringify(transactions);\n\n const urlParam = encodeURIComponent(stringifiedParam);\n const newUrl = new URL(`${metadata.walletUrl}/sign-transaction`);\n newUrl.searchParams.set('transactions_data', urlParam);\n newUrl.searchParams.set('callback_url', cbUrl);\n\n window.location.assign(newUrl.toString());\n return;\n };\n\n const signAndSendTransaction = async ({\n receiverId,\n actions,\n signerId,\n callbackUrl,\n }: {\n receiverId: string;\n actions: Array;\n signerId: string;\n callbackUrl: string;\n }): Promise => {\n assertValidSigner(signerId);\n\n if (!receiverId && !contractId) {\n throw new Error('No receiver found to send the transaction to');\n }\n\n const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n const callback = cbUrl || successUrl;\n\n if (!contractId) {\n const newUrl = new URL(`${metadata.walletUrl}/sign-transaction`);\n const stringifiedParam = JSON.stringify([{ receiverId, signerId, actions }]);\n const urlParam = encodeURIComponent(stringifiedParam);\n newUrl.searchParams.set('transactions_data', urlParam);\n newUrl.searchParams.set('callback_url', callback);\n window.location.assign(newUrl.toString());\n }\n const account = state.wallet.account();\n\n return account.signAndSendTransaction({\n receiverId: receiverId || contractId,\n actions: actions.map((action) => createAction(action)) as any,\n walletCallbackUrl: callback,\n });\n };\n\n\n const verifyOwner = async (): Promise => {\n throw new Error(`The verifyOwner method is not supported by ${metadata.name}`);\n };\n\n const signMessage = async ({ message, nonce, recipient, callbackUrl }): Promise => {\n const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n const newUrl = new URL(`${metadata.walletUrl}/sign-message`);\n newUrl.searchParams.set('message', message);\n newUrl.searchParams.set('nonce', nonce);\n newUrl.searchParams.set('recipient', recipient);\n newUrl.searchParams.set('callbackUrl', cbUrl);\n window.location.assign(newUrl.toString());\n };\n\n const verifyMessage = async ({ accountId, publicKey, signature, message, nonce, recipient, callbackUrl }): Promise => {\n\n const newUrl = new URL(`${metadata.walletUrl}/api/verify-message`);\n newUrl.searchParams.set('message', message);\n newUrl.searchParams.set('accountId', accountId);\n newUrl.searchParams.set('publicKey', publicKey);\n newUrl.searchParams.set('signature', signature);\n newUrl.searchParams.set('nonce', nonce);\n newUrl.searchParams.set('recipient', recipient);\n newUrl.searchParams.set('callbackUrl', callbackUrl);\n\n try {\n const response = await fetch(newUrl.toString())\n const data = await response.json();\n\n const { isValid } = data\n return isValid\n } catch (e) {\n return false\n }\n }\n\n const getAvailableBalance = async (): Promise => {\n // const accountId = state.wallet.getAccountId();\n // return await getBalance(accountId);\n throw (`The getAvailableBalance method is not supported by ${metadata.name}`);\n };\n\n const getAccounts = async (): Promise => {\n const accountId = state.wallet.getAccountId();\n const account = state.wallet.account();\n\n if (!accountId || !account) {\n return [];\n }\n\n const currentAccount: string = window.localStorage.getItem(\n 'mintbase-wallet:account-creation-data',\n )!;\n\n return [\n {\n accountId,\n publicKey: JSON.parse(currentAccount)?.devicePublicKey,\n },\n ];\n };\n\n const switchAccount = async (id: string): Promise => {\n //TODO fix\n setActiveAccountId(id);\n\n return null;\n };\n\n const setActiveAccountId = (accountId: string): null => {\n activeAccountId = accountId;\n window.localStorage.setItem('mintbase-wallet:activeAccountId', accountId);\n\n return null;\n };\n\n // const transformTransactions = async (\n // transactions: Array>,\n // ): Promise> => {\n // const account = state.wallet.account();\n // const { networkId, signer, provider } = account.connection;\n\n // const localKey = await signer.getPublicKey(account.accountId, networkId);\n\n // return Promise.all(\n // transactions.map(async (transaction, index) => {\n // const actions = transaction.actions.map((action) =>\n // createAction(action),\n // );\n // const accessKey = await account.accessKeyForTransaction(\n // transaction.receiverId,\n // actions as any,\n // localKey,\n // );\n\n // if (!accessKey) {\n // throw new Error(\n // `Failed to find matching key for transaction sent to ${transaction.receiverId}`,\n // );\n // }\n\n // const block = await provider.block({ finality: 'final' });\n\n // return nearAPI.transactions.createTransaction(\n // account.accountId,\n // nearAPI.utils.PublicKey.from(accessKey.public_key),\n // transaction.receiverId,\n // accessKey.access_key.nonce + index + 1,\n // actions as any,\n // nearAPI.utils.serialize.base_decode(block.header.hash),\n // );\n // }),\n // );\n // };\n\n return {\n getAccountId,\n isSignedIn,\n signIn,\n signOut,\n signAndSendTransaction,\n verifyOwner,\n signMessage,\n getAvailableBalance,\n getAccounts,\n switchAccount,\n signAndSendTransactions,\n verifyMessage\n };\n};\n","export { setupBitteWallet } from './bitte-wallet-setup';\nexport { setupMintbaseWallet } from './setup';\n","import * as nearAPI from 'near-api-js';\n\nimport type {\n Action,\n BrowserWallet,\n FinalExecutionOutcome,\n WalletBehaviourFactory,\n} from '@near-wallet-selector/core';\nimport { getCallbackUrl } from './utils';\nimport { createAction } from '@near-wallet-selector/wallet-utils';\n\n\ninterface MintbaseWalletState {\n wallet: nearAPI.WalletConnection;\n}\n\ninterface MintbaseWalletAccount {\n accountId: string;\n publicKey: string;\n}\n\nexport const MintbaseWallet: WalletBehaviourFactory<\n BrowserWallet,\n {\n networkId: string;\n callback: string;\n successUrl?: string;\n failureUrl?: string;\n contractId?: string;\n }\n> = async ({\n metadata,\n options,\n successUrl,\n failureUrl,\n contractId,\n callback,\n networkId,\n}) => {\n\n const setupWalletState = async (): Promise | null => {\n if (typeof window !== undefined) {\n const { connect, WalletConnection, keyStores } = nearAPI;\n const connectionConfig = {\n networkId: networkId,\n keyStore: new keyStores.BrowserLocalStorageKeyStore(),\n nodeUrl: options.network.nodeUrl,\n walletUrl: metadata.walletUrl,\n headers: {},\n };\n\n const searchParams = new URL(window.location.href);\n const acc = searchParams.searchParams.get('account_id');\n //make near-api-js not throw without lak\n if (acc && !contractId) {\n localStorage.setItem(\n 'mintbase-wallet_wallet_auth_key',\n JSON.stringify({\n accountId: acc as string,\n allKeys: [],\n }),\n );\n }\n\n const nearConnection = await connect(connectionConfig);\n const wallet = new WalletConnection(nearConnection, 'mintbase-wallet');\n localStorage.setItem('mintbase-wallet:callback_url', callback);\n\n return {\n wallet,\n };\n }\n\n return null;\n };\n\n const state = await setupWalletState();\n\n let activeAccountId: string;\n\n const getAccountId = (): string => activeAccountId;\n\n const isSignedIn = async (): Promise => !!activeAccountId;\n\n const signIn = async (): Promise => {\n const existingAccounts = await getAccounts();\n const href = encodeURI(window?.location?.href);\n\n if (existingAccounts.length) {\n return existingAccounts;\n }\n\n await state.wallet.requestSignIn({\n methodNames: [],\n successUrl: successUrl || href,\n failureUrl: failureUrl || href,\n contractId: contractId,\n });\n\n return getAccounts();\n };\n\n const signOut = async (): Promise => {\n window.localStorage.removeItem('mintbase-wallet:account-data');\n\n if (state.wallet.isSignedIn()) {\n state.wallet.signOut();\n }\n\n return;\n };\n\n\n const assertValidSigner = (signerId: string): void => {\n if (signerId && signerId !== state.wallet.getAccountId()) {\n throw new Error(\n `Cannot sign transactions for ${signerId} while signed in as ${activeAccountId}`,\n );\n }\n };\n\n const signAndSendTransactions = async ({ transactions, callbackUrl }): Promise => {\n if (!state.wallet.isSignedIn()) {\n throw new Error('Wallet not signed in');\n }\n\n const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n for (const { signerId } of transactions) {\n assertValidSigner(signerId);\n }\n const stringifiedParam = JSON.stringify(transactions);\n\n const urlParam = encodeURIComponent(stringifiedParam);\n const newUrl = new URL(`${metadata.walletUrl}/sign-transaction`);\n newUrl.searchParams.set('transactions_data', urlParam);\n newUrl.searchParams.set('callback_url', cbUrl);\n\n window.location.assign(newUrl.toString());\n return;\n };\n\n const signAndSendTransaction = async ({\n receiverId,\n actions,\n signerId,\n callbackUrl,\n }: {\n receiverId: string;\n actions: Array;\n signerId: string;\n callbackUrl: string;\n }): Promise => {\n assertValidSigner(signerId);\n\n if (!receiverId && !contractId) {\n throw new Error('No receiver found to send the transaction to');\n }\n\n const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n const callback = cbUrl || successUrl;\n\n if (!contractId) {\n const newUrl = new URL(`${metadata.walletUrl}/sign-transaction`);\n const stringifiedParam = JSON.stringify([{ receiverId, signerId, actions }]);\n const urlParam = encodeURIComponent(stringifiedParam);\n newUrl.searchParams.set('transactions_data', urlParam);\n newUrl.searchParams.set('callback_url', callback);\n window.location.assign(newUrl.toString());\n }\n const account = state.wallet.account();\n\n return account.signAndSendTransaction({\n receiverId: receiverId || contractId,\n actions: actions.map((action) => createAction(action)) as nearAPI.transactions.Action[],\n walletCallbackUrl: callback,\n });\n };\n\n\n const verifyOwner = async (): Promise => {\n throw new Error(`The verifyOwner method is not supported by ${metadata.name}`);\n };\n\n const signMessage = async ({ message, nonce, recipient, callbackUrl }): Promise => {\n const { cbUrl } = getCallbackUrl(callbackUrl ?? '');\n\n const newUrl = new URL(`${metadata.walletUrl}/sign-message`);\n newUrl.searchParams.set('message', message);\n newUrl.searchParams.set('nonce', nonce);\n newUrl.searchParams.set('recipient', recipient);\n newUrl.searchParams.set('callbackUrl', cbUrl);\n window.location.assign(newUrl.toString());\n };\n\n const verifyMessage = async ({ accountId, publicKey, signature, message, nonce, recipient, callbackUrl }): Promise => {\n\n const newUrl = new URL(`${metadata.walletUrl}/api/verify-message`);\n newUrl.searchParams.set('message', message);\n newUrl.searchParams.set('accountId', accountId);\n newUrl.searchParams.set('publicKey', publicKey);\n newUrl.searchParams.set('signature', signature);\n newUrl.searchParams.set('nonce', nonce);\n newUrl.searchParams.set('recipient', recipient);\n newUrl.searchParams.set('callbackUrl', callbackUrl);\n\n try {\n const response = await fetch(newUrl.toString());\n const data = await response.json();\n\n const { isValid } = data;\n return isValid;\n } catch (e) {\n return false;\n }\n };\n\n const getAvailableBalance = async (): Promise => {\n // const accountId = state.wallet.getAccountId();\n // return await getBalance(accountId);\n throw (`The getAvailableBalance method is not supported by ${metadata.name}`);\n };\n\n const getAccounts = async (): Promise => {\n const accountId = state.wallet.getAccountId();\n const account = state.wallet.account();\n const currentAccount: string = window.localStorage.getItem(\n 'mintbase-wallet:account-creation-data',\n );\n\n if (!accountId || !account || !currentAccount) {\n return [];\n }\n\n return [\n {\n accountId,\n publicKey: JSON.parse(currentAccount)?.devicePublicKey,\n },\n ];\n };\n\n const switchAccount = async (id: string): Promise => {\n //TODO fix\n setActiveAccountId(id);\n\n return null;\n };\n\n const setActiveAccountId = (accountId: string): null => {\n activeAccountId = accountId;\n window.localStorage.setItem('mintbase-wallet:activeAccountId', accountId);\n\n return null;\n };\n\n return {\n getAccountId,\n isSignedIn,\n signIn,\n signOut,\n signAndSendTransaction,\n verifyOwner,\n signMessage,\n getAvailableBalance,\n getAccounts,\n switchAccount,\n signAndSendTransactions,\n verifyMessage,\n };\n};\n","\nimport type {\n BrowserWallet,\n WalletModuleFactory,\n WalletModule,\n} from '@near-wallet-selector/core';\nimport { MintbaseWallet } from './mintbase-wallet';\nimport { resolveWalletUrl } from './utils';\n\ninterface MintbaseWalletSetup {\n callbackUrl?: string;\n successUrl?: string;\n walletUrl?: string;\n failureUrl?: string;\n deprecated?: boolean;\n contractId?: string;\n lak?: boolean;\n}\n\nconst icon =\n 'data:image/png;base64,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';\n\nexport function setupMintbaseWallet({\n walletUrl = '',\n deprecated = false,\n successUrl = '',\n failureUrl = '',\n callbackUrl = '',\n contractId = '',\n}: MintbaseWalletSetup = {}): WalletModuleFactory {\n\n return async (moduleOptions): Promise | null> => {\n\n const wallet: WalletModule = {\n id: 'mintbase-wallet',\n type: 'browser',\n metadata: {\n name: 'Mintbase Wallet',\n description:\n 'NEAR wallet to store, buy, send and stake assets for DeFi.',\n iconUrl: icon,\n deprecated,\n available: true,\n successUrl,\n failureUrl,\n walletUrl: resolveWalletUrl(moduleOptions.options.network.networkId, walletUrl),\n },\n init: (options) => {\n return MintbaseWallet({ callback: callbackUrl, networkId: moduleOptions.options.network.networkId, successUrl, failureUrl, contractId, ...options });\n },\n };\n return wallet;\n };\n}\n","/*\n Mintbase Wallet Utils file\n*/\n\nconst checkCallbackUrl = (callbackUrl: string): string => {\n function isValidURL(url): boolean {\n const urlPattern = /^(https?|ftp|http?):\\/\\/[^\\s/$.?#].[^\\s]*$/;\n return urlPattern.test(url);\n }\n\n if (callbackUrl !== null && callbackUrl.length > 0) {\n if (isValidURL(callbackUrl)) {\n if (\n callbackUrl.startsWith('https://') ||\n callbackUrl.startsWith('http://')\n ) {\n return callbackUrl.endsWith('/')\n ? callbackUrl.slice(0, -1)\n : callbackUrl;\n }\n } else {\n console.error(\n 'callbackUrl set with wrong format. please use an URL with http:// or https:// instead.Further help available on our telegram channel: https://t.me/mintdev',\n );\n return new URL(window.location.href).toString();\n }\n } else {\n const globalCallBackUrl = localStorage.getItem(\n 'mintbase-wallet:callback_url',\n );\n\n if (isValidURL(globalCallBackUrl)) {\n return globalCallBackUrl;\n } else {\n console.warn('We recommend you to set the callbackUrl property on setupMintbaseWallet \\n read more here: \\n https://docs.mintbase.xyz/dev/mintbase-sdk-ref/wallet#setupmintbasewallet \\n \\n further help available on our telegram channel: \\n https://t.me/mintdev');\n return new URL(window.location.href).toString();\n }\n }\n\n return new URL(window.location.href).toString();\n};\n\nconst getCallbackUrl = (callbackUrl?: string): { cbUrl: string } | null => {\n if (typeof window !== undefined) {\n\n let mbjsCallbackUrl = '';\n\n if ( window?.['mbjs']?.keys?.callbackUrl && window?.['mbjs']?.keys?.callbackUrl.length > 0 ) {\n mbjsCallbackUrl = window?.['mbjs']?.keys?.callbackUrl;\n }\n\n const globalCBUrl = localStorage?.getItem('mintbase-wallet:callback_url') || mbjsCallbackUrl;\n\n // it gets always the passed callBackUrl first, if not check for the one on the Wallet Setup or mbjs.keys.callbackUrl\n const finalcbURL = callbackUrl ?? globalCBUrl;\n\n const callBackUrlRes = checkCallbackUrl(finalcbURL);\n\n // check if callBackUrl sent on the method is valid\n // method callbackUrl will always have priority over global callbackUrl , user can set different callbackUrls according to the method..\n\n return { cbUrl: callBackUrlRes };\n }\n return null;\n};\n\nconst resolveWalletUrl = (network: string, walletUrl?: string): string => {\n if (walletUrl) {\n return walletUrl;\n }\n\n switch (network) {\n case 'mainnet':\n return 'https://wallet.mintbase.xyz';\n case 'testnet':\n return 'https://testnet.wallet.mintbase.xyz/';\n default:\n throw new Error('Invalid wallet url');\n }\n};\n\nconst resolveBitteWallet = (network: string, walletUrl?: string): string => {\n if (walletUrl) {\n return walletUrl;\n }\n\n switch (network) {\n case 'mainnet':\n return 'https://wallet.bitte.ai';\n case 'testnet':\n return 'https://testnet.wallet.bitte.ai/';\n default:\n throw new Error('Invalid wallet url');\n }\n};\n\nexport { checkCallbackUrl, getCallbackUrl, resolveBitteWallet, resolveWalletUrl };\n\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\n/**\n * This class is used to store keys in the browsers local storage.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores } from 'near-api-js';\n *\n * const keyStore = new keyStores.BrowserLocalStorageKeyStore();\n * const config = {\n * keyStore, // instance of BrowserLocalStorageKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass BrowserLocalStorageKeyStore extends keystores_1.KeyStore {\n /**\n * @param localStorage defaults to window.localStorage\n * @param prefix defaults to `near-api-js:keystore:`\n */\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Stores a {@link KeyPair} in local storage.\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n });\n }\n /**\n * Gets a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n });\n }\n /**\n * Removes all items that start with `prefix` from local storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n });\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n });\n }\n /**\n * @hidden\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage key that's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n /** @hidden */\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystore_1 = require(\"./keystore\");\n/**\n * Simple in-memory keystore for mainly for testing purposes.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores, utils } from 'near-api-js';\n *\n * const privateKey = '.......';\n * const keyPair = utils.KeyPair.fromString(privateKey);\n *\n * const keyStore = new keyStores.InMemoryKeyStore();\n * keyStore.setKey('testnet', 'example-account.testnet', keyPair);\n *\n * const config = {\n * keyStore, // instance of InMemoryKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Stores a {@link KeyPair} in in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n });\n }\n /**\n * Gets a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n delete this.keys[`${accountId}:${networkId}`];\n });\n }\n /**\n * Removes all {@link KeyPair} from in-memory storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys = {};\n });\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n });\n }\n /** @hidden */\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.KeyStore = exports.InMemoryKeyStore = void 0;\nvar in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nvar keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nvar merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * KeyStores are passed to {@link \"@near-js/wallet-account\".near.Near | Near} via {@link \"@near-js/wallet-account\".near.NearConfig | NearConfig}\n * and are used by the {@link \"@near-js/signers\".in_memory_signer.InMemorySigner | InMemorySigner} to sign transactions.\n *\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores read calls are attempted from start to end of array\n * @param options KeyStore options\n * @param options.writeKeyStoreIndex the keystore index that will receive all write calls\n */\n constructor(keyStores, options = { writeKeyStoreIndex: 0 }) {\n super();\n this.options = options;\n this.keyStores = keyStores;\n }\n /**\n * Store a {@link KeyPair} to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.keyStores[this.options.writeKeyStoreIndex].setKey(networkId, accountId, keyPair);\n });\n }\n /**\n * Gets a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n const keyPair = yield keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n });\n }\n /**\n * Removes a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.removeKey(networkId, accountId);\n }\n });\n }\n /**\n * Removes all items from each key store\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.clear();\n }\n });\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of yield keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n });\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of yield keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n });\n }\n /** @hidden */\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exponentialBackoff = void 0;\nfunction exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = yield getResult();\n if (result) {\n return result;\n }\n yield sleep(waitTime);\n waitTime *= waitBackoff;\n }\n return null;\n });\n}\nexports.exponentialBackoff = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\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 });\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst http_1 = __importDefault(require(\"http\"));\nconst https_1 = __importDefault(require(\"https\"));\nconst httpAgent = new http_1.default.Agent({ keepAlive: true });\nconst httpsAgent = new https_1.default.Agent({ keepAlive: true });\nfunction agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n}\nfunction default_1(resource, init) {\n return (0, node_fetch_1.default)(resource, Object.assign({ agent: agent(new URL(resource.toString())) }, init));\n}\nexports.default = default_1;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n/**\n * Performs an HTTP request to a specified URL or connection and returns the parsed JSON response.\n * @param connectionInfoOrUrl The connection information or URL for the HTTP request.\n * @param json The JSON payload to be included in the request body for POST requests.\n * @returns A Promise that resolves to the parsed JSON response from the HTTP request.\n */\nfunction fetchJson(connectionInfoOrUrl, json) {\n return __awaiter(this, void 0, void 0, function* () {\n let connectionInfo = { url: null };\n if (typeof (connectionInfoOrUrl) === 'string') {\n connectionInfo.url = connectionInfoOrUrl;\n }\n else {\n connectionInfo = connectionInfoOrUrl;\n }\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield ((_a = global.fetch) !== null && _a !== void 0 ? _a : (yield Promise.resolve().then(() => __importStar(require('./fetch')))).default)(connectionInfo.url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: Object.assign(Object.assign({}, connectionInfo.headers), { 'Content-Type': 'application/json' })\n });\n if (!response.ok) {\n if (response.status === 503) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as it's not available now`);\n return null;\n }\n else if (response.status === 408) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as the previous connection was unused for some time`);\n return null;\n }\n throw (0, http_errors_1.default)(response.status, yield response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n }));\n if (!response) {\n throw new types_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${connectionInfo.url}.`, 'RetriesExceeded');\n }\n return yield response.json();\n });\n}\nexports.fetchJson = fetchJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = exports.Provider = exports.JsonRpcProvider = exports.exponentialBackoff = void 0;\nvar exponential_backoff_1 = require(\"./exponential-backoff\");\nObject.defineProperty(exports, \"exponentialBackoff\", { enumerable: true, get: function () { return exponential_backoff_1.exponentialBackoff; } });\nvar json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nvar provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nvar fetch_json_1 = require(\"./fetch_json\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return fetch_json_1.fetchJson; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link JsonRpcProvider} client class\n * which can be used to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst provider_1 = require(\"./provider\");\nconst fetch_json_1 = require(\"./fetch_json\");\n/** @hidden */\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass JsonRpcProvider extends provider_1.Provider {\n /**\n * @param connectionInfo Connection info\n */\n constructor(connectionInfo) {\n super();\n this.connection = connectionInfo || { url: '' };\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('status', []);\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('broadcast_tx_commit', [Buffer.from(bytes).toString('base64')]);\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('broadcast_tx_async', [Buffer.from(bytes).toString('base64')]);\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n */\n txStatus(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.txStatusString(txHash, accountId);\n }\n else {\n return this.txStatusUint8Array(txHash, accountId);\n }\n });\n }\n txStatusUint8Array(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', [(0, utils_1.baseEncode)(txHash), accountId]);\n });\n }\n txStatusString(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', [txHash, accountId]);\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [txHash, accountId]);\n }\n else {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [(0, utils_1.baseEncode)(txHash), accountId]);\n }\n });\n }\n /**\n * Query the RPC by passing an {@link \"@near-js/types\".provider/request.RpcQueryRequest | RpcQueryRequest }\n * @see [https://docs.near.org/api/rpc/contracts](https://docs.near.org/api/rpc/contracts)\n *\n * @typeParam T the shape of the returned query response\n */\n query(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (args.length === 1) {\n const _a = args[0], { block_id, blockId } = _a, otherParams = __rest(_a, [\"block_id\", \"blockId\"]);\n result = yield this.sendJsonRpc('query', Object.assign(Object.assign({}, otherParams), { block_id: block_id || blockId }));\n }\n else {\n const [path, data] = args;\n result = yield this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new types_1.TypedError(`Querying failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, (0, utils_1.getErrorTypeFromErrorMessage)(result.error, result.error.name));\n }\n return result;\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes_in_block', { block_id: blockId, finality });\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('chunk', [chunkId]);\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('validators', [blockId]);\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n const _a = blockReference, { blockId } = _a, otherParams = __rest(_a, [\"blockId\"]);\n return yield this.sendJsonRpc('EXPERIMENTAL_protocol_config', Object.assign(Object.assign({}, otherParams), { block_id: blockId }));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('next_light_client_block', request);\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'all_access_key_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'single_access_key_changes',\n keys: accessKeyArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'account_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'data_changes',\n account_ids: accountIdArray,\n key_prefix_base64: keyPrefix,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'contract_code_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('gas_price', [blockId]);\n });\n }\n /**\n * Directly call the RPC specifying the method and params\n *\n * @param method RPC method\n * @param params Parameters to the method\n */\n sendJsonRpc(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(REQUEST_RETRY_WAIT, REQUEST_RETRY_NUMBER, REQUEST_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = yield (0, fetch_json_1.fetchJson)(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new types_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw (0, utils_1.parseRpcError)(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new types_1.TypedError(errorMessage, 'TimeoutError');\n }\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.error.data, '');\n if (errorType) {\n throw new types_1.TypedError((0, utils_1.formatError)(errorType, params), errorType);\n }\n throw new types_1.TypedError(errorMessage, response.error.name);\n }\n }\n else if (typeof ((_a = response.result) === null || _a === void 0 ? void 0 : _a.error) === 'string') {\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.result.error, '');\n if (errorType) {\n throw new utils_1.ServerError((0, utils_1.formatError)(errorType, params), errorType);\n }\n }\n // Success when response.error is not exist\n return response;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n utils_1.Logger.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n }));\n const { result } = response;\n // From jsonrpc spec:\n // result\n // This member is REQUIRED on success.\n // This member MUST NOT exist if there was an error invoking the method.\n if (typeof result === 'undefined') {\n throw new types_1.TypedError(`Exceeded ${REQUEST_RETRY_NUMBER} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n });\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Provider = void 0;\n/** @hidden */\nclass Provider {\n}\nexports.Provider = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = void 0;\nvar near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nvar wallet_account_1 = require(\"./wallet_account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\n/**\n * This module contains the main class developers will use to interact with NEAR.\n * The {@link Near} class is used to interact with {@link \"@near-js/accounts\".account.Account | Account} through the {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider}.\n * It is configured via the {@link NearConfig}.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#account](https://docs.near.org/tools/near-api-js/quick-reference#account)\n *\n * @module near\n */\nconst accounts_1 = require(\"@near-js/accounts\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * This is the main class developers should use to interact with NEAR.\n * @example\n * ```js\n * const near = new Near(config);\n * ```\n */\nclass Near {\n constructor(config) {\n var _a;\n this.config = config;\n this.connection = accounts_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: { type: 'JsonRpcProvider', args: { url: config.nodeUrl, headers: config.headers } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || ((_a = config.deps) === null || _a === void 0 ? void 0 : _a.keyStore) },\n jsvmAccountId: config.jsvmAccountId || `jsvm.${config.networkId}`\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? new bn_js_1.default(config.initialBalance) : new bn_js_1.default('500000000000000000000000000');\n this.accountCreator = new accounts_1.LocalAccountCreator(new accounts_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new accounts_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n * @param accountId near accountId used to interact with the network.\n */\n account(accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const account = new accounts_1.Account(this.connection, accountId);\n return account;\n });\n }\n /**\n * Create an account using the {@link AccountCreator}. Either:\n * * using a masterAccount with {@link LocalAccountCreator}\n * * using the helperUrl with {@link UrlAccountCreator}\n * @see {@link NearConfig#masterAccount} and {@link NearConfig#helperUrl}\n *\n * @param accountId\n * @param publicKey\n */\n createAccount(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n yield this.accountCreator.createAccount(accountId, publicKey);\n return new accounts_1.Account(this.connection, accountId);\n });\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletConnection = void 0;\n/**\n * This module exposes two classes:\n * * {@link WalletConnection} which redirects users to [NEAR Wallet](https://wallet.near.org/) for key management.\n * * {@link ConnectedWalletAccount} is an {@link \"@near-js/accounts\".account.Account | Account} implementation that uses {@link WalletConnection} to get keys\n *\n * @module walletAccount\n */\nconst accounts_1 = require(\"@near-js/accounts\");\nconst crypto_1 = require(\"@near-js/crypto\");\nconst utils_1 = require(\"@near-js/utils\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst borsh_1 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\n/**\n * This class is not intended for use outside the browser. Without `window` (i.e. in server contexts), it will instantiate but will throw a clear error when used.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#wallet](https://docs.near.org/tools/near-api-js/quick-reference#wallet)\n * @example\n * ```js\n * // create new WalletConnection instance\n * const wallet = new WalletConnection(near, 'my-app');\n *\n * // If not signed in redirect to the NEAR wallet to sign in\n * // keys will be stored in the BrowserLocalStorageKeyStore\n * if(!wallet.isSignedIn()) return wallet.requestSignIn()\n * ```\n */\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n if (typeof (appKeyPrefix) !== 'string') {\n throw new Error('Please define a clear appKeyPrefix for this WalletConnection instance as the second argument to the constructor');\n }\n if (typeof window === 'undefined') {\n return new Proxy(this, {\n get(target, property) {\n if (property === 'isSignedIn') {\n return () => false;\n }\n if (property === 'getAccountId') {\n return () => '';\n }\n if (target[property] && typeof target[property] === 'function') {\n return () => {\n throw new Error('No window found in context, please ensure you are using WalletConnection on the browser');\n };\n }\n return target[property];\n }\n });\n }\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInPromise = this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletConnection is authorized with the wallet.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn();\n * ```\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns promise of completing signing in after redirecting from wallet\n * @example\n * ```js\n * // on login callback page\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn(); // false\n * await wallet.isSignedInAsync(); // true\n * ```\n */\n isSignedInAsync() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._completeSignInPromise) {\n return this.isSignedIn();\n }\n yield this._completeSignInPromise;\n return this.isSignedIn();\n });\n }\n /**\n * Returns authorized Account ID.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.getAccountId();\n * ```\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Constructs string URL to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // return string URL to the NEAR Wallet\n * const url = await wallet.requestSignInUrl({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignInUrl({ contractId, methodNames, successUrl, failureUrl }) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', failureUrl || currentUrl.href);\n if (contractId) {\n /* Throws exception if contract account does not exist */\n const contractAccount = yield this._near.account(contractId);\n yield contractAccount.state();\n newUrl.searchParams.set('contract_id', contractId);\n const accessKey = crypto_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n yield this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n if (methodNames) {\n methodNames.forEach(methodName => {\n newUrl.searchParams.append('methodNames', methodName);\n });\n }\n return newUrl.toString();\n });\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // redirects to the NEAR Wallet\n * wallet.requestSignIn({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignIn(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = yield this.requestSignInUrl(options);\n window.location.assign(url);\n });\n }\n /**\n * Constructs string URL to the wallet to sign a transaction or batch of transactions.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactionsUrl({ transactions, meta, callbackUrl }) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => (0, borsh_1.serialize)(transactions_1.SCHEMA.Transaction, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n if (meta)\n newUrl.searchParams.set('meta', meta);\n return newUrl.toString();\n }\n /**\n * Requests the user to quickly sign for a transaction or batch of transactions by redirecting to the wallet.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactions(options) {\n const url = this.requestSignTransactionsUrl(options);\n window.location.assign(url);\n }\n /**\n * @hidden\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n _completeSignInWithAccessKey() {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n const authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(authData));\n if (publicKey) {\n yield this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n this._authData = authData;\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n currentUrl.searchParams.delete('meta');\n currentUrl.searchParams.delete('transactionHashes');\n window.history.replaceState({}, document.title, currentUrl.toString());\n });\n }\n /**\n * @hidden\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n _moveKeyFromTempToPermanent(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n yield this._keyStore.setKey(this._networkId, accountId, keyPair);\n yield this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n });\n }\n /**\n * Sign out from the current account\n * @example\n * walletConnection.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using {@link WalletConnection} when no local key is available.\n */\nclass ConnectedWalletAccount extends accounts_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n /**\n * Sign a transaction by redirecting to the NEAR Wallet\n * @see {@link WalletConnection#requestSignTransactions}\n * @param options An optional options object\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions An array of transaction actions to be performed.\n * @param options.walletMeta Additional metadata to be included in the wallet signing request.\n * @param options.walletCallbackUrl URL to redirect upon completion of the wallet signing process. Default: current URL.\n */\n signAndSendTransaction({ receiverId, actions, walletMeta, walletCallbackUrl = window.location.href }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const localKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = yield this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n }\n catch (e) {\n if (e.type === 'NotEnoughAllowance') {\n accessKey = yield this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = (0, utils_1.baseDecode)(block.header.hash);\n const publicKey = crypto_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce.add(new bn_js_1.default(1));\n const transaction = (0, transactions_1.createTransaction)(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n yield this.walletConnection.requestSignTransactions({\n transactions: [transaction],\n meta: walletMeta,\n callbackUrl: walletCallbackUrl\n });\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TransactionQueue which also can be used to watch for status?\n });\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of \\{access_key: AccessKey, public_key: PublicKey\\} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n });\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n */\n accessKeyForTransaction(receiverId, actions, localKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeys = yield this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key.toString() === localKey.toString());\n if (accessKey && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n return null;\n });\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst utils_2 = require(\"./utils\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey, stake, transfer, } = transactions_1.actionCreators;\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\n/**\n * This class provides common account related RPC calls including signing transactions with a {@link \"@near-js/crypto\".key_pair.KeyPair | KeyPair}.\n */\nclass Account {\n constructor(connection, accountId) {\n /** @hidden */\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n getConnection() {\n return this.connection;\n }\n /**\n * Returns basic NEAR account information via the `view_account` RPC query method\n * @see [https://docs.near.org/api/rpc/contracts#view-account](https://docs.near.org/api/rpc/contracts#view-account)\n */\n state() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.connection.provider.query({\n request_type: 'view_account',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n });\n }\n /**\n * Create a signed transaction which can be broadcast to the network\n * @param receiverId NEAR account receiving the transaction\n * @param actions list of actions to perform as part of the transaction\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n */\n signTransaction(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeyInfo = yield this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new types_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair exists for this account`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = accessKey.nonce + BigInt(1);\n return yield (0, transactions_1.signTransaction)(receiverId, nonce, actions, (0, utils_1.baseDecode)(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n });\n }\n /**\n * Sign a transaction to perform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider }\n *\n * @param options The options for signing and sending the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be performed in the transaction.\n * @param options.returnError Whether to return an error if the transaction fails.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions, returnError }) {\n return __awaiter(this, void 0, void 0, function* () {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = yield (0, providers_1.exponentialBackoff)(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n [txHash, signedTx] = yield this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return yield this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n if (error.type === 'Expired') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} due to expired block hash`);\n return null;\n }\n error.context = new types_1.ErrorContext((0, utils_1.baseEncode)(txHash));\n throw error;\n }\n }));\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new types_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n (0, utils_1.printTxOutcomeLogsAndFailures)({ contractId: signedTx.transaction.receiverId, outcome: result });\n // Should be falsy if result.status.Failure is null\n if (!returnError && typeof result.status === 'object' && typeof result.status.Failure === 'object' && result.status.Failure !== null) {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new types_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw (0, utils_1.parseResultError)(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n });\n }\n /**\n * Finds the {@link AccessKeyView} associated with the accounts {@link PublicKey} stored in the {@link \"@near-js/keystores\".keystore.KeyStore | Keystore}.\n *\n * @todo Find matching access key based on transaction (i.e. receiverId and actions)\n *\n * @param receiverId currently unused (see todo)\n * @param actions currently unused (see todo)\n * @returns `{ publicKey PublicKey; accessKey: AccessKeyView }`\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n findAccessKey(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n throw new types_1.TypedError(`no matching key pair found in ${this.connection.signer}`, 'PublicKeyNotFound');\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const rawAccessKey = yield this.connection.provider.query({\n request_type: 'view_access_key',\n account_id: this.accountId,\n public_key: publicKey.toString(),\n finality: 'optimistic'\n });\n // store nonce as BigInt to preserve precision on big number\n const accessKey = Object.assign(Object.assign({}, rawAccessKey), { nonce: BigInt(rawAccessKey.nonce || 0) });\n // this function can be called multiple times and retrieve the same access key\n // this checks to see if the access key was already retrieved and cached while\n // the above network call was in flight. To keep nonce values in line, we return\n // the cached access key.\n if (this.accessKeyByPublicKeyCache[publicKey.toString()]) {\n return { publicKey, accessKey: this.accessKeyByPublicKeyCache[publicKey.toString()] };\n }\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n });\n }\n /**\n * Create a new account and deploy a contract to it\n *\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add to the created contract account\n * @param data The compiled contract code\n * @param amount of NEAR to transfer to the created contract account. Transfer enough to pay for storage https://docs.near.org/docs/concepts/storage-staking\n */\n createAndDeployContract(contractId, publicKey, data, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n yield this.signAndSendTransaction({\n receiverId: contractId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey), deployContract(data)]\n });\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n });\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n */\n sendMoney(receiverId, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId,\n actions: [transfer(amount)]\n });\n });\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n */\n createAccount(newAccountId, publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n return this.signAndSendTransaction({\n receiverId: newAccountId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n */\n deleteAccount(beneficiaryId) {\n return __awaiter(this, void 0, void 0, function* () {\n utils_1.Logger.log('Deleting an account does not automatically transfer NFTs and FTs to the beneficiary address. Ensure to transfer assets before deleting.');\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteAccount(beneficiaryId)]\n });\n });\n }\n /**\n * @param data The compiled contract code\n */\n deployContract(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deployContract(data)]\n });\n });\n }\n /** @hidden */\n encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n }\n /**\n * Execute a function call.\n * @param options The options for the function call.\n * @param options.contractId The NEAR account ID of the smart contract.\n * @param options.methodName The name of the method to be called on the smart contract.\n * @param options.args The arguments to be passed to the method.\n * @param options.gas The maximum amount of gas to be used for the function call.\n * @param options.attachedDeposit The amount of NEAR tokens to be attached to the function call.\n * @param options.walletMeta Metadata for wallet integration.\n * @param options.walletCallbackUrl The callback URL for wallet integration.\n * @param options.stringify A function to convert input arguments into bytes array\n * @param options.jsContract Whether the contract is from JS SDK, automatically encodes args from JS SDK to binary.\n * @returns {Promise} A promise that resolves to the final execution outcome of the function call.\n */\n functionCall({ contractId, methodName, args = {}, gas = utils_1.DEFAULT_FUNCTION_CALL_GAS, attachedDeposit, walletMeta, walletCallbackUrl, stringify, jsContract }) {\n return __awaiter(this, void 0, void 0, function* () {\n this.validateArgs(args);\n let functionCallArgs;\n if (jsContract) {\n const encodedArgs = this.encodeJSContractArgs(contractId, methodName, JSON.stringify(args));\n functionCallArgs = ['call_js_contract', encodedArgs, gas, attachedDeposit, null, true];\n }\n else {\n const stringifyArg = stringify === undefined ? transactions_1.stringifyJsonOrBytes : stringify;\n functionCallArgs = [methodName, args, gas, attachedDeposit, stringifyArg, false];\n }\n return this.signAndSendTransaction({\n receiverId: jsContract ? this.connection.jsvmAccountId : contractId,\n // eslint-disable-next-line prefer-spread\n actions: [functionCall.apply(void 0, functionCallArgs)],\n walletMeta,\n walletCallbackUrl\n });\n });\n }\n /**\n * @see [https://docs.near.org/concepts/basics/accounts/access-keys](https://docs.near.org/concepts/basics/accounts/access-keys)\n * @todo expand this API to support more options.\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n */\n addKey(publicKey, contractId, methodNames, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = fullAccessKey();\n }\n else {\n accessKey = functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise}\n */\n deleteKey(publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteKey(crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * @see [https://near-nodes.io/validator/staking-and-delegation](https://near-nodes.io/validator/staking-and-delegation)\n *\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n */\n stake(publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [stake(amount, crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * Compose and sign a SignedDelegate action to be executed in a transaction on behalf of this Account instance\n *\n * @param options Options for the transaction.\n * @param options.actions Actions to be included in the meta transaction\n * @param options.blockHeightTtl Number of blocks past the current block height for which the SignedDelegate action may be included in a meta transaction\n * @param options.receiverId Receiver account of the meta transaction\n */\n signedDelegate({ actions, blockHeightTtl, receiverId, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { provider, signer } = this.connection;\n const { header } = yield provider.block({ finality: 'final' });\n const { accessKey, publicKey } = yield this.findAccessKey(null, null);\n const delegateAction = (0, transactions_1.buildDelegateAction)({\n actions,\n maxBlockHeight: BigInt(header.height) + BigInt(blockHeightTtl),\n nonce: BigInt(accessKey.nonce) + BigInt(1),\n publicKey,\n receiverId,\n senderId: this.accountId,\n });\n const { signedDelegateAction } = yield (0, transactions_1.signDelegateAction)({\n delegateAction,\n signer: {\n sign: (message) => __awaiter(this, void 0, void 0, function* () {\n const { signature } = yield signer.signMessage(message, delegateAction.senderId, this.connection.networkId);\n return signature;\n }),\n }\n });\n return signedDelegateAction;\n });\n }\n /** @hidden */\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n }\n /**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\n viewFunction(options) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, utils_2.viewFunction)(this.connection, options);\n });\n }\n /**\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n viewState(prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, utils_2.viewState)(this.connection, this.accountId, prefix, blockQuery);\n });\n }\n /**\n * Get all access keys for the account\n * @see [https://docs.near.org/api/rpc/access-keys#view-access-key-list](https://docs.near.org/api/rpc/access-keys#view-access-key-list)\n */\n getAccessKeys() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.connection.provider.query({\n request_type: 'view_access_key_list',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n // Replace raw nonce into a new BigInt\n return (_a = response === null || response === void 0 ? void 0 : response.keys) === null || _a === void 0 ? void 0 : _a.map((key) => (Object.assign(Object.assign({}, key), { access_key: Object.assign(Object.assign({}, key.access_key), { nonce: BigInt(key.access_key.nonce) }) })));\n });\n }\n /**\n * Returns a list of authorized apps\n * @todo update the response value to return all the different keys, not just app keys.\n */\n getAccountDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = yield this.getAccessKeys();\n const authorizedApps = accessKeys\n .filter(item => item.access_key.permission !== 'FullAccess')\n .map(item => {\n const perm = item.access_key.permission;\n return {\n contractId: perm.FunctionCall.receiver_id,\n amount: perm.FunctionCall.allowance,\n publicKey: item.public_key,\n };\n });\n return { authorizedApps };\n });\n }\n /**\n * Returns calculated account balance\n */\n getAccountBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const protocolConfig = yield this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = yield this.state();\n const costPerByte = BigInt(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = BigInt(state.storage_usage) * costPerByte;\n const staked = BigInt(state.locked);\n const totalBalance = BigInt(state.amount) + staked;\n const availableBalance = totalBalance - (staked > stateStaked ? staked : stateStaked);\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n });\n }\n /**\n * Returns the NEAR tokens balance and validators of a given account that is delegated to the staking pools that are part of the validators set in the current epoch.\n *\n * NOTE: If the tokens are delegated to a staking pool that is currently on pause or does not have enough tokens to participate in validation, they won't be accounted for.\n * @returns {Promise}\n */\n getActiveDelegatedStakeBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const epochId = block.header.epoch_id;\n const { current_validators, next_validators, current_proposals } = yield this.connection.provider.validators(epochId);\n const pools = new Set();\n [...current_validators, ...next_validators, ...current_proposals]\n .forEach((validator) => pools.add(validator.account_id));\n const uniquePools = [...pools];\n const promises = uniquePools\n .map((validator) => (this.viewFunction({\n contractId: validator,\n methodName: 'get_account_total_balance',\n args: { account_id: this.accountId },\n blockQuery: { blockId: blockHash }\n })));\n const results = yield Promise.allSettled(promises);\n const hasTimeoutError = results.some((result) => {\n if (result.status === 'rejected' && result.reason.type === 'TimeoutError') {\n return true;\n }\n return false;\n });\n // When RPC is down and return timeout error, throw error\n if (hasTimeoutError) {\n throw new Error('Failed to get delegated stake balance');\n }\n const summary = results.reduce((result, state, index) => {\n const validatorId = uniquePools[index];\n if (state.status === 'fulfilled') {\n const currentBN = BigInt(state.value);\n if (currentBN !== BigInt(0)) {\n return Object.assign(Object.assign({}, result), { stakedValidators: [...result.stakedValidators, { validatorId, amount: currentBN.toString() }], total: result.total + currentBN });\n }\n }\n if (state.status === 'rejected') {\n return Object.assign(Object.assign({}, result), { failedValidators: [...result.failedValidators, { validatorId, error: state.reason }] });\n }\n return result;\n }, { stakedValidators: [], failedValidators: [], total: BigInt(0) });\n return Object.assign(Object.assign({}, summary), { total: summary.total.toString() });\n });\n }\n}\nexports.Account = Account;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst types_1 = require(\"@near-js/types\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_multisig_1 = require(\"./account_multisig\");\nconst constants_1 = require(\"./constants\");\nconst types_2 = require(\"./types\");\nconst { addKey, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey } = transactions_1.actionCreators;\nclass Account2FA extends account_multisig_1.AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n }\n /**\n * Sign a transaction to preform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n *\n * @param options Options for the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n yield this.sendCode();\n const result = yield this.promptAndVerify();\n if (this.onConfirmResult) {\n yield this.onConfirmResult(result);\n }\n return result;\n });\n }\n // default helpers for CH deployments of multisig\n /**\n * Deploy a multisig contract with 2FA and handle the deployment process.\n * @param contractBytes - The bytecode of the multisig contract.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deployment.\n */\n deployMultisig(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransactionWithAccount: { get: () => super.signAndSendTransactionWithAccount }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const seedOrLedgerKey = (yield this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (yield this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => deleteKey(pk)),\n ...fak2lak.map((pk) => addKey(pk, functionCallAccessKey(accountId, constants_1.MULTISIG_CHANGE_METHODS, null))),\n addKey(confirmOnlyKey, functionCallAccessKey(accountId, constants_1.MULTISIG_CONFIRM_METHODS, null)),\n deployContract(contractBytes),\n ];\n const newFunctionCallActionBatch = actions.concat(functionCall('new', newArgs, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT));\n utils_1.Logger.log('deploying multisig contract for', accountId);\n const { stateStatus: multisigStateStatus } = yield this.checkMultisigCodeAndStateStatus(contractBytes);\n switch (multisigStateStatus) {\n case types_2.MultisigStateStatus.STATE_NOT_INITIALIZED:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, newFunctionCallActionBatch);\n case types_2.MultisigStateStatus.VALID_STATE:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, actions);\n case types_2.MultisigStateStatus.INVALID_STATE:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState');\n default:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n });\n }\n /**\n * Disable 2FA with the option to clean up contract state.\n * @param options Options for disabling 2FA.\n * @param options.contractBytes The bytecode of the contract to deploy.\n * @param options.cleanupContractBytes The bytecode of the cleanup contract (optional).\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disableWithFAK({ contractBytes, cleanupContractBytes }) {\n return __awaiter(this, void 0, void 0, function* () {\n let cleanupActions = [];\n if (cleanupContractBytes) {\n yield this.deleteAllRequests().catch(e => e);\n cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes);\n }\n const keyConversionActions = yield this.get2faDisableKeyConversionActions();\n const actions = [\n ...cleanupActions,\n ...keyConversionActions,\n deployContract(contractBytes)\n ];\n const accessKeyInfo = yield this.findAccessKey(this.accountId, actions);\n if (accessKeyInfo && accessKeyInfo.accessKey && accessKeyInfo.accessKey.permission !== 'FullAccess') {\n throw new types_1.TypedError('No full access key found in keystore. Unable to bypass multisig', 'NoFAKFound');\n }\n return this.signAndSendTransactionWithAccount(this.accountId, actions);\n });\n }\n /**\n * Retrieves cleanup actions for disabling 2FA.\n * @param cleanupContractBytes - The bytecode of the cleanup contract.\n * @returns {Promise} - A promise that resolves to an array of cleanup actions.\n */\n get2faDisableCleanupActions(cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentAccountState = yield this.viewState('').catch(error => {\n const cause = error.cause && error.cause.name;\n if (cause == 'NO_CONTRACT_CODE') {\n return [];\n }\n throw cause == 'TOO_LARGE_CONTRACT_STATE'\n ? new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState')\n : error;\n });\n const currentAccountStateKeys = currentAccountState.map(({ key }) => key.toString('base64'));\n return currentAccountState.length ? [\n deployContract(cleanupContractBytes),\n functionCall('clean', { keys: currentAccountStateKeys }, constants_1.MULTISIG_GAS, BigInt('0'))\n ] : [];\n });\n }\n /**\n * Retrieves key conversion actions for disabling 2FA.\n * @returns {Promise} - A promise that resolves to an array of key conversion actions.\n */\n get2faDisableKeyConversionActions() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const accessKeys = yield this.getAccessKeys();\n const lak2fak = accessKeys\n .filter(({ access_key }) => access_key.permission !== 'FullAccess')\n .filter(({ access_key }) => {\n const perm = access_key.permission.FunctionCall;\n return perm.receiver_id === accountId &&\n perm.method_names.length === 4 &&\n perm.method_names.includes('add_request_and_confirm');\n });\n const confirmOnlyKey = crypto_1.PublicKey.from((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n return [\n deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => deleteKey(crypto_1.PublicKey.from(public_key))),\n ...lak2fak.map(({ public_key }) => addKey(crypto_1.PublicKey.from(public_key), fullAccessKey()))\n ];\n });\n }\n /**\n * This method converts LAKs back to FAKs, clears state and deploys an 'empty' contract (contractBytes param)\n * @param [contractBytes]{@link https://github.com/near/near-wallet/blob/master/packages/frontend/src/wasm/main.wasm?raw=true}\n * @param [cleanupContractBytes]{@link https://github.com/near/core-contracts/blob/master/state-manipulation/res/state_cleanup.wasm?raw=true}\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disable(contractBytes, cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const { stateStatus } = yield this.checkMultisigCodeAndStateStatus();\n if (stateStatus !== types_2.MultisigStateStatus.VALID_STATE && stateStatus !== types_2.MultisigStateStatus.STATE_NOT_INITIALIZED) {\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n let deleteAllRequestsError;\n yield this.deleteAllRequests().catch(e => deleteAllRequestsError = e);\n const cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes).catch(e => {\n if (e.type === 'ContractHasExistingState') {\n throw deleteAllRequestsError || e;\n }\n throw e;\n });\n const actions = [\n ...cleanupActions,\n ...(yield this.get2faDisableKeyConversionActions()),\n deployContract(contractBytes),\n ];\n utils_1.Logger.log('disabling 2fa for', this.accountId);\n return yield this.signAndSendTransaction({\n receiverId: this.accountId,\n actions\n });\n });\n }\n /**\n * Default implementation for sending the 2FA code.\n * @returns {Promise} - A promise that resolves to the request ID.\n */\n sendCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const { requestId } = this.getRequest();\n const method = yield this.get2faMethod();\n yield this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n });\n }\n getCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n });\n }\n /**\n * Prompts the user to enter and verify the 2FA code.\n * @returns {Promise} - A promise that resolves to the verification result.\n */\n promptAndVerify() {\n return __awaiter(this, void 0, void 0, function* () {\n const method = yield this.get2faMethod();\n const securityCode = yield this.getCode(method);\n try {\n const result = yield this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n utils_1.Logger.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return yield this.promptAndVerify();\n }\n throw e;\n }\n });\n }\n /**\n * Verify the 2FA code using the default method.\n * @param securityCode - The security code to verify.\n * @returns {Promise} A promise that resolves to the verification result.\n */\n verifyCodeDefault(securityCode) {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return yield this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n });\n }\n /**\n * Retrieves recovery methods for the account.\n * @returns {Promise<{ accountId: string, data: any }>} - A promise that resolves to recovery methods data.\n */\n getRecoveryMethods() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n return {\n accountId,\n data: yield this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n });\n }\n /**\n * Gets the 2FA method (kind and detail).\n * @returns {Promise<{ kind: string, detail: string }>} A promise that resolves to the 2FA method.\n */\n get2faMethod() {\n return __awaiter(this, void 0, void 0, function* () {\n let { data } = yield this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n });\n }\n /**\n * Generates a signature for the latest finalized block.\n * @returns {Promise<{ blockNumber: string, blockNumberSignature: string }>} - A promise that resolves to the signature information.\n */\n signatureFor() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = yield this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n });\n }\n /**\n * Sends a signed JSON request to a specified path.\n * @param path - The path for the request.\n * @param body - The request body.\n * @returns {Promise} - A promise that resolves to the response from the helper.\n */\n postSignedJson(path, body) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, providers_1.fetchJson)(this.helperUrl + path, JSON.stringify(Object.assign(Object.assign({}, body), (yield this.signatureFor()))));\n });\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => crypto_1.PublicKey.from(pk);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n });\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield (0, providers_1.fetchJson)(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n });\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountMultisig = void 0;\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_1 = require(\"./account\");\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"./types\");\nconst { deployContract, functionCall } = transactions_1.actionCreators;\nvar MultisigCodeStatus;\n(function (MultisigCodeStatus) {\n MultisigCodeStatus[MultisigCodeStatus[\"INVALID_CODE\"] = 0] = \"INVALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"VALID_CODE\"] = 1] = \"VALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"UNKNOWN_CODE\"] = 2] = \"UNKNOWN_CODE\";\n})(MultisigCodeStatus || (MultisigCodeStatus = {}));\n// in memory request cache for node w/o localStorage\nconst storageFallback = {\n [constants_1.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n /**\n * Constructs an instance of the `AccountMultisig` class.\n * @param connection The NEAR connection object.\n * @param accountId The NEAR account ID.\n * @param options Additional options for the multisig account.\n * @param options.storage Storage to store data related to multisig operations.\n * @param options.onAddRequestResult Callback function to handle the result of adding a request.\n */\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n }\n /**\n * Sign and send a transaction with the multisig account as the sender.\n * @param receiverId - The NEAR account ID of the transaction receiver.\n * @param actions - The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransactionWithAccount(receiverId, actions) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return _super.signAndSendTransaction.call(this, { receiverId, actions });\n });\n }\n /**\n * Sign and send a multisig transaction to add a request and confirm it.\n * @param options Options for the multisig transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n let result;\n try {\n result = yield _super.signAndSendTransaction.call(this, {\n receiverId: accountId,\n actions: [\n functionCall('add_request_and_confirm', args, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n catch (e) {\n if (e.toString().includes('Account has too many active requests. Confirm or delete some')) {\n yield this.deleteUnconfirmedRequests();\n return yield this.signAndSendTransaction({ receiverId, actions });\n }\n throw e;\n }\n // TODO: Are following even needed? Seems like it throws on error already\n if (!result.status) {\n throw new Error('Request failed');\n }\n const status = Object.assign({}, result.status);\n if (!status.SuccessValue || typeof status.SuccessValue !== 'string') {\n throw new Error('Request failed');\n }\n this.setRequest({\n accountId,\n actions,\n requestId: parseInt(Buffer.from(status.SuccessValue, 'base64').toString('ascii'), 10)\n });\n if (this.onAddRequestResult) {\n yield this.onAddRequestResult(result);\n }\n // NOTE there is no await on purpose to avoid blocking for 2fa\n this.deleteUnconfirmedRequests();\n return result;\n });\n }\n /**\n * This method submits a canary transaction that is expected to always fail in order to determine whether the contract currently has valid multisig state\n * and whether it is initialized. The canary transaction attempts to delete a request at index u32_max and will go through if a request exists at that index.\n * a u32_max + 1 and -1 value cannot be used for the canary due to expected u32 error thrown before deserialization attempt.\n * @param contractBytes The bytecode of the multisig contract.\n * @returns {Promise<{ codeStatus: MultisigCodeStatus; stateStatus: MultisigStateStatus }>} A promise that resolves to the status of the code and state.\n */\n checkMultisigCodeAndStateStatus(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const u32_max = 4294967295;\n const validCodeStatusIfNoDeploy = contractBytes ? MultisigCodeStatus.UNKNOWN_CODE : MultisigCodeStatus.VALID_CODE;\n try {\n if (contractBytes) {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId, actions: [\n deployContract(contractBytes),\n functionCall('delete_request', { request_id: u32_max }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n else {\n yield this.deleteRequest(u32_max);\n }\n return { codeStatus: MultisigCodeStatus.VALID_CODE, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n catch (e) {\n if (new RegExp(types_1.MultisigDeleteRequestRejectionError.CANNOT_DESERIALIZE_STATE).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.INVALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.MULTISIG_NOT_INITIALIZED).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.STATE_NOT_INITIALIZED };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.NO_SUCH_REQUEST).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.METHOD_NOT_FOUND).test(e && e.message)) {\n // not reachable if transaction included a deploy\n return { codeStatus: MultisigCodeStatus.INVALID_CODE, stateStatus: types_1.MultisigStateStatus.UNKNOWN_STATE };\n }\n throw e;\n }\n });\n }\n /**\n * Delete a multisig request by its ID.\n * @param request_id The ID of the multisig request to be deleted.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deletion.\n */\n deleteRequest(request_id) {\n return super.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n /**\n * Delete all multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when all requests are deleted.\n */\n deleteAllRequests() {\n return __awaiter(this, void 0, void 0, function* () {\n const request_ids = yield this.getRequestIds();\n if (request_ids.length) {\n yield Promise.all(request_ids.map((id) => this.deleteRequest(id)));\n }\n });\n }\n /**\n * Delete unconfirmed multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when unconfirmed requests are deleted.\n */\n deleteUnconfirmedRequests() {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Delete in batch, don't delete unexpired\n // TODO: Delete in batch, don't delete unexpired (can reduce gas usage dramatically)\n const request_ids = yield this.getRequestIds();\n const { requestId } = this.getRequest();\n for (const requestIdToDelete of request_ids) {\n if (requestIdToDelete == requestId) {\n continue;\n }\n try {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id: requestIdToDelete }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n catch (e) {\n utils_1.Logger.warn('Attempt to delete an earlier request before 15 minutes failed. Will try again.');\n }\n }\n });\n }\n // helpers\n getRequestIds() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Read requests from state to allow filtering by expiration time\n // TODO: https://github.com/near/core-contracts/blob/305d1db4f4f2cf5ce4c1ef3479f7544957381f11/multisig/src/lib.rs#L84\n return this.viewFunction({\n contractId: this.accountId,\n methodName: 'list_request_ids',\n });\n });\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(constants_1.MULTISIG_STORAGE_KEY) || '{}');\n }\n return storageFallback[constants_1.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(constants_1.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[constants_1.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: constants_1.MULTISIG_ALLOWANCE.toString(),\n method_names: constants_1.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst signers_1 = require(\"@near-js/signers\");\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(Object.assign({}, config.args));\n case 'FailoverRpcProvider': {\n const providers = ((config === null || config === void 0 ? void 0 : config.args) || []).map((arg) => new providers_1.JsonRpcProvider(arg));\n return new providers_1.FailoverRpcProvider(providers);\n }\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signers_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer, jsvmAccountId) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n this.jsvmAccountId = jsvmAccountId;\n }\n getConnection() {\n return this;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer, config.jsvmAccountId);\n }\n}\nexports.Connection = Connection;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = BigInt((0, utils_1.parseNearAmount)('1'));\n// TODO: Different gas value for different requests (can reduce gas usage dramatically)\nexports.MULTISIG_GAS = BigInt('100000000000000');\nexports.MULTISIG_DEPOSIT = BigInt('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst local_view_execution_1 = require(\"./local-view-execution\");\nconst is_my_json_valid_1 = __importDefault(require(\"is-my-json-valid\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst near_abi_1 = require(\"near-abi\");\nconst account_1 = require(\"./account\");\nconst errors_1 = require(\"./errors\");\nconst utils_2 = require(\"./utils\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n },\n }[name];\n}\nfunction validateArguments(args, abiFunction, abiRoot) {\n var _a;\n if (!isObject(args))\n return;\n if (abiFunction.params &&\n abiFunction.params.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.params.serialization_type);\n }\n if (abiFunction.result &&\n abiFunction.result.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.result.serialization_type);\n }\n const params = ((_a = abiFunction.params) === null || _a === void 0 ? void 0 : _a.args) || [];\n for (const p of params) {\n const arg = args[p.name];\n const typeSchema = p.type_schema;\n typeSchema.definitions = abiRoot.body.root_schema.definitions;\n const validate = (0, is_my_json_valid_1.default)(typeSchema);\n const valid = validate(arg);\n if (!valid) {\n throw new errors_1.ArgumentSchemaError(p.name, validate.errors);\n }\n }\n // Check there are no extra unknown arguments passed\n for (const argName of Object.keys(args)) {\n const param = params.find((p) => p.name === argName);\n if (!param) {\n throw new errors_1.UnknownArgumentError(argName, params.map((p) => p.name));\n }\n }\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === \"[object Object]\";\n/**\n * Defines a smart contract on NEAR including the change (mutable) and view (non-mutable) methods\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#contract](https://docs.near.org/tools/near-api-js/quick-reference#contract)\n * @example\n * ```js\n * import { Contract } from 'near-api-js';\n *\n * async function contractExample() {\n * const methodOptions = {\n * viewMethods: ['getMessageByAccountId'],\n * changeMethods: ['addMessage']\n * };\n * const contract = new Contract(\n * wallet.account(),\n * 'contract-id.testnet',\n * methodOptions\n * );\n *\n * // use a contract view method\n * const messages = await contract.getMessages({\n * accountId: 'example-account.testnet'\n * });\n *\n * // use a contract change method\n * await contract.addMessage({\n * meta: 'some info',\n * callbackUrl: 'https://example.com/callback',\n * args: { text: 'my message' },\n * amount: 1\n * })\n * }\n * ```\n */\nclass Contract {\n /**\n * @param account NEAR account to sign change method transactions\n * @param contractId NEAR account id where the contract is deployed\n * @param options NEAR smart contract methods that your application will use. These will be available as `contract.methodName`\n */\n constructor(connection, contractId, options) {\n this.connection = connection.getConnection();\n if (connection instanceof account_1.Account) {\n const deprecate = (0, depd_1.default)(\"new Contract(account, contractId, options)\");\n deprecate(\"use `new Contract(connection, contractId, options)` instead\");\n this.account = connection;\n }\n this.contractId = contractId;\n this.lve = new local_view_execution_1.LocalViewExecution(connection);\n const { viewMethods = [], changeMethods = [], abi: abiRoot, useLocalViewExecution, } = options;\n let viewMethodsWithAbi = viewMethods.map((name) => ({\n name,\n abi: null,\n }));\n let changeMethodsWithAbi = changeMethods.map((name) => ({\n name,\n abi: null,\n }));\n if (abiRoot) {\n if (viewMethodsWithAbi.length > 0 ||\n changeMethodsWithAbi.length > 0) {\n throw new errors_1.ConflictingOptions();\n }\n viewMethodsWithAbi = abiRoot.body.functions\n .filter((m) => m.kind === near_abi_1.AbiFunctionKind.View)\n .map((m) => ({ name: m.name, abi: m }));\n changeMethodsWithAbi = abiRoot.body.functions\n .filter((methodAbi) => methodAbi.kind === near_abi_1.AbiFunctionKind.Call)\n .map((methodAbi) => ({ name: methodAbi.name, abi: methodAbi }));\n }\n viewMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (args = {}, options = {}, ...ignored) => __awaiter(this, void 0, void 0, function* () {\n if (ignored.length ||\n !(isObject(args) || isUint8Array(args)) ||\n !isObject(options)) {\n throw new types_1.PositionalArgsError();\n }\n if (abi) {\n validateArguments(args, abi, abiRoot);\n }\n if (useLocalViewExecution) {\n try {\n return yield this.lve.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n catch (error) {\n utils_1.Logger.warn(`Local view execution failed with: \"${error.message}\"`);\n utils_1.Logger.warn(`Fallback to normal RPC call`);\n }\n }\n if (this.account) {\n return this.account.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n return (0, utils_2.viewFunction)(this.connection, Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n })),\n });\n });\n changeMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (...args) => __awaiter(this, void 0, void 0, function* () {\n if (args.length &&\n (args.length > 3 ||\n !(isObject(args[0]) || isUint8Array(args[0])))) {\n throw new types_1.PositionalArgsError();\n }\n if (args.length > 1 || !(args[0] && args[0].args)) {\n const deprecate = (0, depd_1.default)(\"contract.methodName(args, gas, amount)\");\n deprecate(\"use `contract.methodName({ signerAccount, args, gas?, amount?, callbackUrl?, meta? })` instead\");\n args[0] = {\n args: args[0],\n gas: args[1],\n amount: args[2],\n };\n }\n if (abi) {\n validateArguments(args[0].args, abi, abiRoot);\n }\n return this._changeMethod(Object.assign({ methodName: name }, args[0]));\n })),\n });\n });\n }\n _changeMethod({ signerAccount, args, methodName, gas, amount, meta, callbackUrl, }) {\n return __awaiter(this, void 0, void 0, function* () {\n validateBNLike({ gas, amount });\n const account = this.account || signerAccount;\n if (!account)\n throw new Error(`signerAccount must be specified`);\n const rawResult = yield account.functionCall({\n contractId: this.contractId,\n methodName,\n args,\n gas,\n attachedDeposit: amount,\n walletMeta: meta,\n walletCallbackUrl: callbackUrl,\n });\n return (0, utils_1.getTransactionLastResult)(rawResult);\n });\n }\n}\nexports.Contract = Contract;\n/**\n * Throws if an argument is not in BigInt format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = \"number, decimal string or BigInt\";\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && typeof argValue !== \"bigint\" && isNaN(argValue)) {\n throw new types_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConflictingOptions = exports.ArgumentSchemaError = exports.UnknownArgumentError = exports.UnsupportedSerializationError = void 0;\nclass UnsupportedSerializationError extends Error {\n constructor(methodName, serializationType) {\n super(`Contract method '${methodName}' is using an unsupported serialization type ${serializationType}`);\n }\n}\nexports.UnsupportedSerializationError = UnsupportedSerializationError;\nclass UnknownArgumentError extends Error {\n constructor(actualArgName, expectedArgNames) {\n super(`Unrecognized argument '${actualArgName}', expected '${JSON.stringify(expectedArgNames)}'`);\n }\n}\nexports.UnknownArgumentError = UnknownArgumentError;\nclass ArgumentSchemaError extends Error {\n constructor(argName, errors) {\n super(`Argument '${argName}' does not conform to the specified ABI schema: '${JSON.stringify(errors)}'`);\n }\n}\nexports.ArgumentSchemaError = ArgumentSchemaError;\nclass ConflictingOptions extends Error {\n constructor() {\n super('Conflicting contract method options have been passed. You can either specify ABI or a list of view/call methods.');\n }\n}\nexports.ConflictingOptions = ConflictingOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = exports.Contract = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.Connection = exports.AccountMultisig = exports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = exports.Account2FA = exports.Account = void 0;\nvar account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nvar account_2fa_1 = require(\"./account_2fa\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return account_2fa_1.Account2FA; } });\nvar account_creator_1 = require(\"./account_creator\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return account_creator_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return account_creator_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return account_creator_1.UrlAccountCreator; } });\nvar account_multisig_1 = require(\"./account_multisig\");\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return account_multisig_1.AccountMultisig; } });\nvar connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return constants_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return constants_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return constants_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return constants_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CONFIRM_METHODS; } });\nvar contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return errors_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return errors_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return errors_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return errors_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return types_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return types_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalViewExecution = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst storage_1 = require(\"./storage\");\nconst runtime_1 = require(\"./runtime\");\nconst utils_2 = require(\"../utils\");\nclass LocalViewExecution {\n constructor(connection) {\n this.connection = connection.getConnection();\n this.storage = new storage_1.Storage();\n }\n fetchContractCode(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this.connection.provider.query(Object.assign({ request_type: 'view_code', account_id: contractId }, blockQuery));\n return result.code_base64;\n });\n }\n fetchContractState(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return (0, utils_2.viewState)(this.connection, contractId, '', blockQuery);\n });\n }\n fetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block(blockQuery);\n const blockHash = block.header.hash;\n const blockHeight = block.header.height;\n const blockTimestamp = block.header.timestamp;\n const contractCode = yield this.fetchContractCode(contractId, blockQuery);\n const contractState = yield this.fetchContractState(contractId, blockQuery);\n return {\n blockHash,\n blockHeight,\n blockTimestamp,\n contractCode,\n contractState,\n };\n });\n }\n loadOrFetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const stored = this.storage.load(blockQuery);\n if (stored) {\n return stored;\n }\n const _a = yield this.fetch(contractId, blockQuery), { blockHash } = _a, fetched = __rest(_a, [\"blockHash\"]);\n this.storage.save(blockHash, fetched);\n return fetched;\n });\n }\n /**\n * Calls a view function on a contract, fetching the contract code and state if needed.\n * @param options Options for calling the view function.\n * @param options.contractId The contract account ID.\n * @param options.methodName The name of the view function to call.\n * @param options.args The arguments to pass to the view function.\n * @param options.blockQuery The block query options.\n * @returns {Promise} - A promise that resolves to the result of the view function.\n */\n viewFunction(_a) {\n var { contractId, methodName, args = {}, blockQuery = { finality: 'optimistic' } } = _a, ignored = __rest(_a, [\"contractId\", \"methodName\", \"args\", \"blockQuery\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const methodArgs = JSON.stringify(args);\n const { contractCode, contractState, blockHeight, blockTimestamp } = yield this.loadOrFetch(contractId, blockQuery);\n const runtime = new runtime_1.Runtime({ contractId, contractCode, contractState, blockHeight, blockTimestamp, methodArgs });\n const { result, logs } = yield runtime.execute(methodName);\n if (logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs });\n }\n return JSON.parse(Buffer.from(result).toString());\n });\n }\n}\nexports.LocalViewExecution = LocalViewExecution;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Runtime = void 0;\nconst crypto_1 = require(\"crypto\");\nconst notImplemented = (name) => () => {\n throw new Error('method not implemented: ' + name);\n};\nconst prohibitedInView = (name) => () => {\n throw new Error('method not available for view calls: ' + name);\n};\nclass Runtime {\n constructor(_a) {\n var { contractCode } = _a, context = __rest(_a, [\"contractCode\"]);\n this.context = context;\n this.wasm = this.prepareWASM(Buffer.from(contractCode, 'base64'));\n this.memory = new WebAssembly.Memory({ initial: 1024, maximum: 2048 });\n this.registers = {};\n this.logs = [];\n this.result = Buffer.from([]);\n }\n readUTF16CStr(ptr) {\n const arr = [];\n const mem = new Uint16Array(this.memory.buffer);\n let key = Number(ptr) / 2;\n while (mem[key] != 0) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(Uint16Array.from(arr).buffer).toString('ucs2');\n }\n readUTF8CStr(len, ptr) {\n const arr = [];\n const mem = new Uint8Array(this.memory.buffer);\n let key = Number(ptr);\n for (let i = 0; i < len && mem[key] != 0; i++) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(arr).toString('utf8');\n }\n storageRead(keyLen, keyPtr) {\n const storageKey = Buffer.from(new Uint8Array(this.memory.buffer, Number(keyPtr), Number(keyLen)));\n const stateVal = this.context.contractState.filter((obj) => Buffer.compare(obj.key, storageKey) === 0).map((obj) => obj.value);\n if (stateVal.length === 0)\n return null;\n return stateVal.length > 1 ? stateVal : stateVal[0];\n }\n prepareWASM(input) {\n const parts = [];\n const magic = input.subarray(0, 4);\n if (magic.toString('utf8') !== '\\0asm') {\n throw new Error('Invalid magic number');\n }\n const version = input.readUInt32LE(4);\n if (version != 1) {\n throw new Error('Invalid version: ' + version);\n }\n let offset = 8;\n parts.push(input.subarray(0, offset));\n function decodeLEB128() {\n let result = 0;\n let shift = 0;\n let byte;\n do {\n byte = input[offset++];\n result |= (byte & 0x7f) << shift;\n shift += 7;\n } while (byte & 0x80);\n return result;\n }\n function decodeLimits() {\n const flags = input[offset++];\n const hasMax = flags & 0x1;\n const initial = decodeLEB128();\n const max = hasMax ? decodeLEB128() : null;\n return { initial, max };\n }\n function decodeString() {\n const length = decodeLEB128();\n const result = input.subarray(offset, offset + length);\n offset += length;\n return result.toString('utf8');\n }\n function encodeLEB128(value) {\n const result = [];\n do {\n let byte = value & 0x7f;\n value >>= 7;\n if (value !== 0) {\n byte |= 0x80;\n }\n result.push(byte);\n } while (value !== 0);\n return Buffer.from(result);\n }\n function encodeString(value) {\n const result = Buffer.from(value, 'utf8');\n return Buffer.concat([encodeLEB128(result.length), result]);\n }\n do {\n const sectionStart = offset;\n const sectionId = input.readUInt8(offset);\n offset++;\n const sectionSize = decodeLEB128();\n const sectionEnd = offset + sectionSize;\n if (sectionId == 5) {\n // Memory section\n // Make sure it's empty and only imported memory is used\n parts.push(Buffer.from([5, 1, 0]));\n }\n else if (sectionId == 2) {\n // Import section\n const sectionParts = [];\n const numImports = decodeLEB128();\n for (let i = 0; i < numImports; i++) {\n const importStart = offset;\n decodeString();\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n let skipImport = false;\n switch (kind) {\n case 0:\n // Function import\n decodeLEB128(); // index\n break;\n case 1:\n // Table import\n offset++; // type\n decodeLimits();\n break;\n case 2:\n // Memory import\n decodeLimits();\n // NOTE: existing memory import is removed (so no need to add it to sectionParts)\n skipImport = true;\n break;\n case 3:\n // Global import\n offset++; // type\n offset++; // mutability\n break;\n default:\n throw new Error('Invalid import kind: ' + kind);\n }\n if (!skipImport) {\n sectionParts.push(input.subarray(importStart, offset));\n }\n }\n const importMemory = Buffer.concat([\n encodeString('env'),\n encodeString('memory'),\n Buffer.from([2]),\n Buffer.from([0]),\n encodeLEB128(1),\n ]);\n sectionParts.push(importMemory);\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([2]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else if (sectionId == 7) {\n // Export section\n const sectionParts = [];\n const numExports = decodeLEB128();\n for (let i = 0; i < numExports; i++) {\n const exportStart = offset;\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n decodeLEB128();\n if (kind !== 2) {\n // Pass through all exports except memory\n sectionParts.push(input.subarray(exportStart, offset));\n }\n }\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([7]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else {\n parts.push(input.subarray(sectionStart, sectionEnd));\n }\n offset = sectionEnd;\n } while (offset < input.length);\n return Buffer.concat(parts);\n }\n // Host functions\n getRegisterLength(registerId) {\n return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER);\n }\n readFromRegister(registerId, ptr) {\n const mem = new Uint8Array(this.memory.buffer);\n mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr));\n }\n getCurrentAccountId(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.contractId);\n }\n inputMethodArgs(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs);\n }\n getBlockHeight() {\n return BigInt(this.context.blockHeight);\n }\n getBlockTimestamp() {\n return BigInt(this.context.blockTimestamp);\n }\n sha256(valueLen, valuePtr, registerId) {\n const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen));\n const hash = (0, crypto_1.createHash)('sha256');\n hash.update(value);\n this.registers[registerId.toString()] = hash.digest();\n }\n returnValue(valueLen, valuePtr) {\n this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)));\n }\n panic(message) {\n throw new Error('panic: ' + message);\n }\n abort(msg_ptr, filename_ptr, line, col) {\n const msg = this.readUTF16CStr(msg_ptr);\n const filename = this.readUTF16CStr(filename_ptr);\n const message = `${msg} ${filename}:${line}:${col}`;\n if (!msg || !filename) {\n throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.');\n }\n throw new Error('abort: ' + message);\n }\n appendToLog(len, ptr) {\n this.logs.push(this.readUTF8CStr(len, ptr));\n }\n readStorage(key_len, key_ptr, register_id) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n this.registers[register_id] = result;\n return BigInt(1);\n }\n hasStorageKey(key_len, key_ptr) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n return BigInt(1);\n }\n getHostImports() {\n return {\n register_len: this.getRegisterLength.bind(this),\n read_register: this.readFromRegister.bind(this),\n current_account_id: this.getCurrentAccountId.bind(this),\n input: this.inputMethodArgs.bind(this),\n block_index: this.getBlockHeight.bind(this),\n block_timestamp: this.getBlockTimestamp.bind(this),\n sha256: this.sha256.bind(this),\n value_return: this.returnValue.bind(this),\n abort: this.abort.bind(this),\n log_utf8: this.appendToLog.bind(this),\n log_utf16: this.appendToLog.bind(this),\n storage_read: this.readStorage.bind(this),\n storage_has_key: this.hasStorageKey.bind(this),\n panic: () => this.panic('explicit guest panic'),\n panic_utf8: (len, ptr) => this.panic(this.readUTF8CStr(len, ptr)),\n // Not implemented\n epoch_height: notImplemented('epoch_height'),\n storage_usage: notImplemented('storage_usage'),\n account_balance: notImplemented('account_balance'),\n account_locked_balance: notImplemented('account_locked_balance'),\n random_seed: notImplemented('random_seed'),\n ripemd160: notImplemented('ripemd160'),\n keccak256: notImplemented('keccak256'),\n keccak512: notImplemented('keccak512'),\n ecrecover: notImplemented('ecrecover'),\n validator_stake: notImplemented('validator_stake'),\n validator_total_stake: notImplemented('validator_total_stake'),\n // Prohibited\n write_register: prohibitedInView('write_register'),\n signer_account_id: prohibitedInView('signer_account_id'),\n signer_account_pk: prohibitedInView('signer_account_pk'),\n predecessor_account_id: prohibitedInView('predecessor_account_id'),\n attached_deposit: prohibitedInView('attached_deposit'),\n prepaid_gas: prohibitedInView('prepaid_gas'),\n used_gas: prohibitedInView('used_gas'),\n promise_create: prohibitedInView('promise_create'),\n promise_then: prohibitedInView('promise_then'),\n promise_and: prohibitedInView('promise_and'),\n promise_batch_create: prohibitedInView('promise_batch_create'),\n promise_batch_then: prohibitedInView('promise_batch_then'),\n promise_batch_action_create_account: prohibitedInView('promise_batch_action_create_account'),\n promise_batch_action_deploy_contract: prohibitedInView('promise_batch_action_deploy_contract'),\n promise_batch_action_function_call: prohibitedInView('promise_batch_action_function_call'),\n promise_batch_action_function_call_weight: prohibitedInView('promise_batch_action_function_call_weight'),\n promise_batch_action_transfer: prohibitedInView('promise_batch_action_transfer'),\n promise_batch_action_stake: prohibitedInView('promise_batch_action_stake'),\n promise_batch_action_add_key_with_full_access: prohibitedInView('promise_batch_action_add_key_with_full_access'),\n promise_batch_action_add_key_with_function_call: prohibitedInView('promise_batch_action_add_key_with_function_call'),\n promise_batch_action_delete_key: prohibitedInView('promise_batch_action_delete_key'),\n promise_batch_action_delete_account: prohibitedInView('promise_batch_action_delete_account'),\n promise_results_count: prohibitedInView('promise_results_count'),\n promise_result: prohibitedInView('promise_result'),\n promise_return: prohibitedInView('promise_return'),\n storage_write: prohibitedInView('storage_write'),\n storage_remove: prohibitedInView('storage_remove'),\n };\n }\n execute(methodName) {\n return __awaiter(this, void 0, void 0, function* () {\n const module = yield WebAssembly.compile(this.wasm);\n const instance = yield WebAssembly.instantiate(module, { env: Object.assign(Object.assign({}, this.getHostImports()), { memory: this.memory }) });\n const callMethod = instance.exports[methodName];\n if (callMethod == undefined) {\n throw new Error(`Contract method '${methodName}' does not exists in contract ${this.context.contractId} for block id ${this.context.blockHeight}`);\n }\n callMethod();\n return {\n result: this.result,\n logs: this.logs\n };\n });\n }\n}\nexports.Runtime = Runtime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = void 0;\nconst lru_map_1 = require(\"lru_map\");\nclass Storage {\n constructor(options = { max: Storage.MAX_ELEMENTS }) {\n this.cache = new lru_map_1.LRUMap(options.max);\n this.blockHeights = new Map();\n }\n load(blockRef) {\n const noBlockId = !('blockId' in blockRef);\n if (noBlockId)\n return undefined;\n let blockId = blockRef.blockId;\n // block hash is passed, so get its corresponding block height\n if (blockId.toString().length == 44) {\n blockId = this.blockHeights.get(blockId.toString());\n }\n // get cached values for the given block height\n return this.cache.get(blockId);\n }\n save(blockHash, { blockHeight, blockTimestamp, contractCode, contractState }) {\n this.blockHeights.set(blockHash, blockHeight);\n this.cache.set(blockHeight, { blockHeight, blockTimestamp, contractCode, contractState });\n }\n}\nexports.Storage = Storage;\nStorage.MAX_ELEMENTS = 100;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = void 0;\nvar MultisigDeleteRequestRejectionError;\n(function (MultisigDeleteRequestRejectionError) {\n MultisigDeleteRequestRejectionError[\"CANNOT_DESERIALIZE_STATE\"] = \"Cannot deserialize the contract state\";\n MultisigDeleteRequestRejectionError[\"MULTISIG_NOT_INITIALIZED\"] = \"Smart contract panicked: Multisig contract should be initialized before usage\";\n MultisigDeleteRequestRejectionError[\"NO_SUCH_REQUEST\"] = \"Smart contract panicked: panicked at 'No such request: either wrong number or already confirmed'\";\n MultisigDeleteRequestRejectionError[\"REQUEST_COOLDOWN_ERROR\"] = \"Request cannot be deleted immediately after creation.\";\n MultisigDeleteRequestRejectionError[\"METHOD_NOT_FOUND\"] = \"Contract method is not found\";\n})(MultisigDeleteRequestRejectionError = exports.MultisigDeleteRequestRejectionError || (exports.MultisigDeleteRequestRejectionError = {}));\nvar MultisigStateStatus;\n(function (MultisigStateStatus) {\n MultisigStateStatus[MultisigStateStatus[\"INVALID_STATE\"] = 0] = \"INVALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"STATE_NOT_INITIALIZED\"] = 1] = \"STATE_NOT_INITIALIZED\";\n MultisigStateStatus[MultisigStateStatus[\"VALID_STATE\"] = 2] = \"VALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"UNKNOWN_STATE\"] = 3] = \"UNKNOWN_STATE\";\n})(MultisigStateStatus = exports.MultisigStateStatus || (exports.MultisigStateStatus = {}));\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.viewFunction = exports.viewState = exports.encodeJSContractArgs = exports.validateArgs = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\nfunction bytesJsonStringify(input) {\n return Buffer.from(JSON.stringify(input));\n}\nfunction validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n}\nexports.validateArgs = validateArgs;\nfunction encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n}\nexports.encodeJSContractArgs = encodeJSContractArgs;\n/**\n * Returns the state (key value pairs) of account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param connection connection to query state from\n * @param accountId account whose state is viewed\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\nfunction viewState(connection, accountId, prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { values } = yield connection.provider.query(Object.assign(Object.assign({ request_type: 'view_state' }, blockQuery), { account_id: accountId, prefix_base64: Buffer.from(prefix).toString('base64') }));\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n });\n}\nexports.viewState = viewState;\n/**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\nfunction viewFunction(connection, { contractId, methodName, args = {}, parse = parseJsonFromRawResponse, stringify = bytesJsonStringify, jsContract = false, blockQuery = { finality: 'optimistic' } }) {\n return __awaiter(this, void 0, void 0, function* () {\n let encodedArgs;\n validateArgs(args);\n if (jsContract) {\n encodedArgs = encodeJSContractArgs(contractId, methodName, Object.keys(args).length > 0 ? JSON.stringify(args) : '');\n }\n else {\n encodedArgs = stringify(args);\n }\n const result = yield connection.provider.query(Object.assign(Object.assign({ request_type: 'call_function' }, blockQuery), { account_id: jsContract ? connection.jsvmAccountId : contractId, method_name: jsContract ? 'view_js_contract' : methodName, args_base64: encodedArgs.toString('base64') }));\n if (result.logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs: result.logs });\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n });\n}\nexports.viewFunction = viewFunction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeySize = exports.KeyType = void 0;\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nvar KeySize;\n(function (KeySize) {\n KeySize[KeySize[\"SECRET_KEY\"] = 32] = \"SECRET_KEY\";\n})(KeySize = exports.KeySize || (exports.KeySize = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyPairEd25519 = exports.KeyPair = exports.KeyType = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return constants_1.KeyType; } });\nvar key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nvar key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_ed25519_1.KeyPairEd25519; } });\nvar public_key_1 = require(\"./public_key\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return public_key_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPair = void 0;\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nclass KeyPair extends key_pair_base_1.KeyPairBase {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return key_pair_ed25519_1.KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n /**\n * Creates a key pair from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {KeyPair} The key pair created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new key_pair_ed25519_1.KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new key_pair_ed25519_1.KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairBase = void 0;\nclass KeyPairBase {\n}\nexports.KeyPairBase = KeyPairBase;\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.KeyPairEd25519 = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst randombytes_1 = __importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"./constants\");\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst public_key_1 = require(\"./public_key\");\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends key_pair_base_1.KeyPairBase {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param extendedSecretKey\n */\n constructor(extendedSecretKey) {\n super();\n const decoded = (0, utils_1.baseDecode)(extendedSecretKey);\n const secretKey = new Uint8Array(decoded.slice(0, constants_1.KeySize.SECRET_KEY));\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n this.publicKey = new public_key_1.PublicKey({ keyType: constants_1.KeyType.ED25519, data: publicKey });\n this.secretKey = (0, utils_1.baseEncode)(secretKey);\n this.extendedSecretKey = extendedSecretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const secretKey = (0, randombytes_1.default)(constants_1.KeySize.SECRET_KEY);\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n const extendedSecretKey = new Uint8Array([...secretKey, ...publicKey]);\n return new KeyPairEd25519((0, utils_1.baseEncode)(extendedSecretKey));\n }\n /**\n * Signs a message using the key pair's secret key.\n * @param message The message to be signed.\n * @returns {Signature} The signature object containing the signature and the public key.\n */\n sign(message) {\n const signature = ed25519_1.ed25519.sign(message, (0, utils_1.baseDecode)(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n /**\n * Verifies the signature of a message using the key pair's public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n return this.publicKey.verify(message, signature);\n }\n /**\n * Returns a string representation of the key pair in the format 'ed25519:[extendedSecretKey]'.\n * @returns {string} The string representation of the key pair.\n */\n toString() {\n return `ed25519:${this.extendedSecretKey}`;\n }\n /**\n * Retrieves the public key associated with the key pair.\n * @returns {PublicKey} The public key.\n */\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst constants_1 = require(\"./constants\");\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case constants_1.KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return constants_1.KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends types_1.Assignable {\n /**\n * Creates a PublicKey instance from a string or an existing PublicKey instance.\n * @param value The string or PublicKey instance to create a PublicKey from.\n * @returns {PublicKey} The PublicKey instance.\n */\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n /**\n * Creates a PublicKey instance from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {PublicKey} The PublicKey instance created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n let publicKey;\n let keyType = constants_1.KeyType.ED25519;\n if (parts.length === 1) {\n publicKey = parts[0];\n }\n else if (parts.length === 2) {\n publicKey = parts[1];\n keyType = str_to_key_type(parts[0]);\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n const decodedPublicKey = (0, utils_1.baseDecode)(publicKey);\n if (decodedPublicKey.length !== constants_1.KeySize.SECRET_KEY) {\n throw new Error(`Invalid public key size (${decodedPublicKey.length}), must be ${constants_1.KeySize.SECRET_KEY}`);\n }\n return new PublicKey({ keyType, data: decodedPublicKey });\n }\n /**\n * Returns a string representation of the public key.\n * @returns {string} The string representation of the public key.\n */\n toString() {\n return `${key_type_to_str(this.keyType)}:${(0, utils_1.baseEncode)(this.data)}`;\n }\n /**\n * Verifies a message signature using the public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n switch (this.keyType) {\n case constants_1.KeyType.ED25519: return ed25519_1.ed25519.verify(signature, message, this.data);\n default: throw new Error(`Unknown key type ${this.keyType}`);\n }\n }\n}\nexports.PublicKey = PublicKey;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\n/**\n * This class is used to store keys in the browsers local storage.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores } from 'near-api-js';\n *\n * const keyStore = new keyStores.BrowserLocalStorageKeyStore();\n * const config = {\n * keyStore, // instance of BrowserLocalStorageKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass BrowserLocalStorageKeyStore extends keystores_1.KeyStore {\n /**\n * @param localStorage defaults to window.localStorage\n * @param prefix defaults to `near-api-js:keystore:`\n */\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Stores a {@link KeyPair} in local storage.\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n });\n }\n /**\n * Gets a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n });\n }\n /**\n * Removes all items that start with `prefix` from local storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n });\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n });\n }\n /**\n * @hidden\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage key that's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n /** @hidden */\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystore_1 = require(\"./keystore\");\n/**\n * Simple in-memory keystore for mainly for testing purposes.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores, utils } from 'near-api-js';\n *\n * const privateKey = '.......';\n * const keyPair = utils.KeyPair.fromString(privateKey);\n *\n * const keyStore = new keyStores.InMemoryKeyStore();\n * keyStore.setKey('testnet', 'example-account.testnet', keyPair);\n *\n * const config = {\n * keyStore, // instance of InMemoryKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Stores a {@link KeyPair} in in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n });\n }\n /**\n * Gets a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n delete this.keys[`${accountId}:${networkId}`];\n });\n }\n /**\n * Removes all {@link KeyPair} from in-memory storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys = {};\n });\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n });\n }\n /** @hidden */\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.KeyStore = exports.InMemoryKeyStore = void 0;\nvar in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nvar keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nvar merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * KeyStores are passed to {@link \"@near-js/wallet-account\".near.Near | Near} via {@link \"@near-js/wallet-account\".near.NearConfig | NearConfig}\n * and are used by the {@link \"@near-js/signers\".in_memory_signer.InMemorySigner | InMemorySigner} to sign transactions.\n *\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores read calls are attempted from start to end of array\n * @param options KeyStore options\n * @param options.writeKeyStoreIndex the keystore index that will receive all write calls\n */\n constructor(keyStores, options = { writeKeyStoreIndex: 0 }) {\n super();\n this.options = options;\n this.keyStores = keyStores;\n }\n /**\n * Store a {@link KeyPair} to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.keyStores[this.options.writeKeyStoreIndex].setKey(networkId, accountId, keyPair);\n });\n }\n /**\n * Gets a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n const keyPair = yield keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n });\n }\n /**\n * Removes a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.removeKey(networkId, accountId);\n }\n });\n }\n /**\n * Removes all items from each key store\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.clear();\n }\n });\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of yield keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n });\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of yield keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n });\n }\n /** @hidden */\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exponentialBackoff = void 0;\nfunction exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = yield getResult();\n if (result) {\n return result;\n }\n yield sleep(waitTime);\n waitTime *= waitBackoff;\n }\n return null;\n });\n}\nexports.exponentialBackoff = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FailoverRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link FailoverRpcProvider} client class\n * which can be used to interact with multiple [NEAR RPC APIs](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst provider_1 = require(\"./provider\");\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass FailoverRpcProvider extends provider_1.Provider {\n /**\n * @param providers list of providers\n */\n constructor(providers) {\n super();\n if (providers.length === 0) {\n throw new Error('At least one provider must be specified');\n }\n this.providers = providers;\n this.currentProviderIndex = 0;\n }\n switchToNextProvider() {\n if (this.providers.length === 1)\n return;\n if (this.providers.length - 1 <= this.currentProviderIndex) {\n this.currentProviderIndex = 0;\n }\n else {\n this.currentProviderIndex += 1;\n }\n utils_1.Logger.debug(`Switched to provider at the index ${this.currentProviderIndex}`);\n }\n get currentProvider() {\n const provider = this.providers[this.currentProviderIndex];\n if (!provider)\n throw new Error(`Provider wasn't found at index ${this.currentProviderIndex}`);\n return provider;\n }\n withBackoff(getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n for (let i = 0; i < this.providers.length; i++) {\n try {\n // each provider implements own retry logic\n const result = yield getResult(this.currentProvider);\n if (result)\n return result;\n }\n catch (_a) {\n this.switchToNextProvider();\n }\n }\n throw new types_1.TypedError(`Exceeded ${this.providers.length} providers to execute request`, 'RetriesExceeded');\n });\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.status());\n });\n }\n sendTransactionUntil(signedTransaction, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.sendTransactionUntil(signedTransaction, waitUntil));\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.sendTransaction(signedTransaction));\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.sendTransactionAsync(signedTransaction));\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n */\n txStatus(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.txStatus(txHash, accountId, waitUntil));\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.txStatusReceipts(txHash, accountId, waitUntil));\n });\n }\n query(paramsOrPath, data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (data) {\n return this.withBackoff((currentProvider) => currentProvider.query(paramsOrPath, data));\n }\n return this.withBackoff((currentProvider) => currentProvider.query(paramsOrPath));\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.block(blockQuery));\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.blockChanges(blockQuery));\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.chunk(chunkId));\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.validators(blockId));\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.experimental_protocolConfig(blockReference));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.lightClientProof(request));\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.nextLightClientBlock(request));\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.accessKeyChanges(accountIdArray, blockQuery));\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.singleAccessKeyChanges(accessKeyArray, blockQuery));\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.accountChanges(accountIdArray, blockQuery));\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.contractStateChanges(accountIdArray, blockQuery, keyPrefix));\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.contractCodeChanges(accountIdArray, blockQuery));\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.gasPrice(blockId));\n });\n }\n}\nexports.FailoverRpcProvider = FailoverRpcProvider;\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 });\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst http_1 = __importDefault(require(\"http\"));\nconst https_1 = __importDefault(require(\"https\"));\nconst httpAgent = new http_1.default.Agent({ keepAlive: true });\nconst httpsAgent = new https_1.default.Agent({ keepAlive: true });\nfunction agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n}\nfunction default_1(resource, init) {\n return (0, node_fetch_1.default)(resource, Object.assign({ agent: agent(new URL(resource.toString())) }, init));\n}\nexports.default = default_1;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n/**\n * Performs an HTTP request to a specified URL or connection and returns the parsed JSON response.\n * @param connectionInfoOrUrl The connection information or URL for the HTTP request.\n * @param json The JSON payload to be included in the request body for POST requests.\n * @returns A Promise that resolves to the parsed JSON response from the HTTP request.\n */\nfunction fetchJson(connectionInfoOrUrl, json) {\n return __awaiter(this, void 0, void 0, function* () {\n let connectionInfo = { url: null };\n if (typeof (connectionInfoOrUrl) === 'string') {\n connectionInfo.url = connectionInfoOrUrl;\n }\n else {\n connectionInfo = connectionInfoOrUrl;\n }\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield ((_a = global.fetch) !== null && _a !== void 0 ? _a : (yield Promise.resolve().then(() => __importStar(require('./fetch')))).default)(connectionInfo.url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: Object.assign(Object.assign({}, connectionInfo.headers), { 'Content-Type': 'application/json' })\n });\n if (!response.ok) {\n if (response.status === 503) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as it's not available now`);\n return null;\n }\n else if (response.status === 408) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as the previous connection was unused for some time`);\n return null;\n }\n throw (0, http_errors_1.default)(response.status, yield response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n }));\n if (!response) {\n throw new types_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${connectionInfo.url}.`, 'RetriesExceeded');\n }\n return yield response.json();\n });\n}\nexports.fetchJson = fetchJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = exports.Provider = exports.FailoverRpcProvider = exports.JsonRpcProvider = exports.exponentialBackoff = void 0;\nvar exponential_backoff_1 = require(\"./exponential-backoff\");\nObject.defineProperty(exports, \"exponentialBackoff\", { enumerable: true, get: function () { return exponential_backoff_1.exponentialBackoff; } });\nvar json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nvar failover_rpc_provider_1 = require(\"./failover-rpc-provider\");\nObject.defineProperty(exports, \"FailoverRpcProvider\", { enumerable: true, get: function () { return failover_rpc_provider_1.FailoverRpcProvider; } });\nvar provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nvar fetch_json_1 = require(\"./fetch_json\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return fetch_json_1.fetchJson; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link JsonRpcProvider} client class\n * which can be used to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst provider_1 = require(\"./provider\");\nconst fetch_json_1 = require(\"./fetch_json\");\n/** @hidden */\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass JsonRpcProvider extends provider_1.Provider {\n /**\n * @param connectionInfo Connection info\n */\n constructor(connectionInfo, options) {\n super();\n this.connection = connectionInfo || { url: '' };\n const defaultOptions = {\n retries: REQUEST_RETRY_NUMBER,\n wait: REQUEST_RETRY_WAIT,\n backoff: REQUEST_RETRY_WAIT_BACKOFF\n };\n this.options = Object.assign({}, defaultOptions, options);\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('status', []);\n });\n }\n /**\n * Sends a signed transaction to the RPC\n *\n * @param signedTransaction The signed transaction being sent\n * @param waitUntil\n */\n sendTransactionUntil(signedTransaction, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('send_tx', { signed_tx_base64: Buffer.from(bytes).toString('base64'), wait_until: waitUntil });\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendTransactionUntil(signedTransaction, 'EXECUTED_OPTIMISTIC');\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendTransactionUntil(signedTransaction, 'NONE');\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n * @param waitUntil\n */\n txStatus(txHash, accountId, waitUntil = 'EXECUTED_OPTIMISTIC') {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.txStatusString(txHash, accountId, waitUntil);\n }\n else {\n return this.txStatusUint8Array(txHash, accountId, waitUntil);\n }\n });\n }\n txStatusUint8Array(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', { tx_hash: (0, utils_1.baseEncode)(txHash), sender_account_id: accountId, wait_until: waitUntil });\n });\n }\n txStatusString(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', { tx_hash: txHash, sender_account_id: accountId, wait_until: waitUntil });\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @param waitUntil\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId, waitUntil = 'EXECUTED_OPTIMISTIC') {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', { tx_hash: txHash, sender_account_id: accountId, wait_until: waitUntil });\n }\n else {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', { tx_hash: (0, utils_1.baseEncode)(txHash), sender_account_id: accountId, wait_until: waitUntil });\n }\n });\n }\n /**\n * Query the RPC by passing an {@link \"@near-js/types\".provider/request.RpcQueryRequest | RpcQueryRequest }\n * @see [https://docs.near.org/api/rpc/contracts](https://docs.near.org/api/rpc/contracts)\n *\n * @typeParam T the shape of the returned query response\n */\n query(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (args.length === 1) {\n const _a = args[0], { block_id, blockId } = _a, otherParams = __rest(_a, [\"block_id\", \"blockId\"]);\n result = yield this.sendJsonRpc('query', Object.assign(Object.assign({}, otherParams), { block_id: block_id || blockId }));\n }\n else {\n const [path, data] = args;\n result = yield this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new types_1.TypedError(`Querying failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, (0, utils_1.getErrorTypeFromErrorMessage)(result.error, result.error.name));\n }\n return result;\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes_in_block', { block_id: blockId, finality });\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('chunk', [chunkId]);\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('validators', [blockId]);\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n const _a = blockReference, { blockId } = _a, otherParams = __rest(_a, [\"blockId\"]);\n return yield this.sendJsonRpc('EXPERIMENTAL_protocol_config', Object.assign(Object.assign({}, otherParams), { block_id: blockId }));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('next_light_client_block', request);\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'all_access_key_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'single_access_key_changes',\n keys: accessKeyArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'account_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'data_changes',\n account_ids: accountIdArray,\n key_prefix_base64: keyPrefix,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'contract_code_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('gas_price', [blockId]);\n });\n }\n /**\n * Directly call the RPC specifying the method and params\n *\n * @param method RPC method\n * @param params Parameters to the method\n */\n sendJsonRpc(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(this.options.wait, this.options.retries, this.options.backoff, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = yield (0, fetch_json_1.fetchJson)(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new types_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw (0, utils_1.parseRpcError)(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new types_1.TypedError(errorMessage, 'TimeoutError');\n }\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.error.data, '');\n if (errorType) {\n throw new types_1.TypedError((0, utils_1.formatError)(errorType, params), errorType);\n }\n throw new types_1.TypedError(errorMessage, response.error.name);\n }\n }\n else if (typeof ((_a = response.result) === null || _a === void 0 ? void 0 : _a.error) === 'string') {\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.result.error, '');\n if (errorType) {\n throw new utils_1.ServerError((0, utils_1.formatError)(errorType, params), errorType);\n }\n }\n // Success when response.error is not exist\n return response;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n utils_1.Logger.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n }));\n const { result } = response;\n // From jsonrpc spec:\n // result\n // This member is REQUIRED on success.\n // This member MUST NOT exist if there was an error invoking the method.\n if (typeof result === 'undefined') {\n throw new types_1.TypedError(`Exceeded ${this.options.retries} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n });\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Provider = void 0;\n/** @hidden */\nclass Provider {\n}\nexports.Provider = Provider;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst signer_1 = require(\"./signer\");\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends signer_1.Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static fromKeyPair(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyStore = new keystores_1.InMemoryKeyStore();\n yield keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n });\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n createKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = crypto_1.KeyPair.fromRandom('ed25519');\n yield this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n });\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise} Returns the public key or null if not found\n */\n getPublicKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n });\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n signMessage(message, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n });\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar in_memory_signer_1 = require(\"./in_memory_signer\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return in_memory_signer_1.InMemorySigner; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = void 0;\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.actionCreators = exports.stringifyJsonOrBytes = void 0;\nconst actions_1 = require(\"./actions\");\n/**\n * Creates a full access key with full access permissions.\n * @returns A new full access key.\n */\nfunction fullAccessKey() {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n fullAccess: new actions_1.FullAccessPermission({}),\n }),\n });\n}\n/**\n * Creates an access key with function call permission for a specific receiver and method names.\n * @param receiverId The NEAR account ID of the function call receiver.\n * @param methodNames An array of method names allowed for function calls.\n * @param allowance An optional allowance (maximum amount) for the function call. Default: Unlimited.\n * @returns A new access key with function call permission.\n */\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n functionCall: new actions_1.FunctionCallPermission({\n receiverId,\n allowance,\n methodNames,\n }),\n }),\n });\n}\n/**\n * Creates a new action for creating a new NEAR account.\n * @returns A new action for creating a new account.\n */\nfunction createAccount() {\n return new actions_1.Action({ createAccount: new actions_1.CreateAccount({}) });\n}\n/**\n * Creates a new action for deploying a contract with the provided code.\n * @param code The Uint8Array representing the code of the contract.\n * @returns A new action for deploying a contract.\n */\nfunction deployContract(code) {\n return new actions_1.Action({ deployContract: new actions_1.DeployContract({ code }) });\n}\n/**\n * Converts an input argument to a Buffer, handling cases for both JSON and Uint8Array.\n * @param args The input argument, either JSON object or Uint8Array.\n * @returns A Buffer representation of the input argument.\n */\nfunction stringifyJsonOrBytes(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n return isUint8Array ? args : Buffer.from(JSON.stringify(args));\n}\nexports.stringifyJsonOrBytes = stringifyJsonOrBytes;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @param stringify Convert input arguments into bytes array.\n * @param jsContract Is contract from JS SDK, skips stringification of arguments.\n */\nfunction functionCall(methodName, args, gas = BigInt(0), deposit = BigInt(0), stringify = stringifyJsonOrBytes, jsContract = false) {\n if (jsContract) {\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({ methodName, args, gas, deposit }),\n });\n }\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({\n methodName,\n args: stringify(args),\n gas,\n deposit,\n }),\n });\n}\n/**\n * Creates a new action for transferring funds, optionally specifying a deposit amount.\n * @param deposit The amount to be deposited along with the transfer. Default: 0.\n * @returns A new action for transferring funds.\n */\nfunction transfer(deposit = BigInt(0)) {\n return new actions_1.Action({ transfer: new actions_1.Transfer({ deposit }) });\n}\n/**\n * Creates a new action for staking tokens, specifying the stake amount and public key.\n * @param stake The amount to be staked. Default: 0.\n * @param publicKey The public key associated with the staking action.\n * @returns A new action for staking tokens.\n */\nfunction stake(stake = BigInt(0), publicKey) {\n return new actions_1.Action({ stake: new actions_1.Stake({ stake, publicKey }) });\n}\n/**\n * Creates a new action for adding a public key with a specified access key.\n * @param publicKey The public key to be added.\n * @param accessKey The access key associated with the added public key.\n * @returns A new action for adding a public key.\n */\nfunction addKey(publicKey, accessKey) {\n return new actions_1.Action({ addKey: new actions_1.AddKey({ publicKey, accessKey }) });\n}\n/**\n * Creates a new action for deleting a public key.\n * @param publicKey The public key to be deleted.\n * @returns A new action for deleting a public key.\n */\nfunction deleteKey(publicKey) {\n return new actions_1.Action({ deleteKey: new actions_1.DeleteKey({ publicKey }) });\n}\n/**\n * Creates a new action for deleting an account with the specified beneficiary ID.\n * @param beneficiaryId The NEAR account ID of the beneficiary.\n * @returns A new action for deleting an account.\n */\nfunction deleteAccount(beneficiaryId) {\n return new actions_1.Action({ deleteAccount: new actions_1.DeleteAccount({ beneficiaryId }) });\n}\n/**\n * Creates a new action for a signed delegation, specifying the delegate action and signature.\n * @param delegateAction The delegate action to be performed.\n * @param signature The signature associated with the delegate action.\n * @returns A new action for a signed delegation.\n */\nfunction signedDelegate({ delegateAction, signature, }) {\n return new actions_1.Action({\n signedDelegate: new actions_1.SignedDelegate({ delegateAction, signature }),\n });\n}\nexports.actionCreators = {\n addKey,\n createAccount,\n deleteAccount,\n deleteKey,\n deployContract,\n fullAccessKey,\n functionCall,\n functionCallAccessKey,\n signedDelegate,\n stake,\n transfer,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.SignedDelegate = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nclass FunctionCallPermission extends types_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends types_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends types_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nclass IAction extends types_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nclass SignedDelegate extends IAction {\n}\nexports.SignedDelegate = SignedDelegate;\n/**\n * Contains a list of the valid transaction Actions available with this API\n * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec}\n */\nclass Action extends Enum {\n}\nexports.Action = Action;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransaction = void 0;\nconst schema_1 = require(\"./schema\");\n/**\n * Creates a new transaction object with the provided parameters.\n * @param signerId The NEAR account ID of the transaction signer.\n * @param publicKey The public key associated with the signer.\n * @param receiverId The NEAR account ID of the transaction receiver.\n * @param nonce The nonce value for the transaction, represented as a BN, string, or number.\n * @param actions An array of transaction actions to be performed.\n * @param blockHash The hash of the block where the transaction will be included.\n * @returns A new transaction object initialized with the provided parameters.\n */\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n const txNonce = typeof nonce === 'bigint' ? nonce : BigInt(nonce);\n return new schema_1.Transaction({\n signerId,\n publicKey,\n nonce: txNonce,\n receiverId,\n actions,\n blockHash,\n });\n}\nexports.createTransaction = createTransaction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDelegateAction = exports.DelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst action_creators_1 = require(\"./action_creators\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer, } = action_creators_1.actionCreators;\nclass DelegateAction extends types_1.Assignable {\n}\nexports.DelegateAction = DelegateAction;\n/**\n * Compose a delegate action for inclusion with a meta transaction signed on the sender's behalf\n * @param actions The set of actions to be included in the meta transaction\n * @param maxBlockHeight The maximum block height for which this action can be executed as part of a transaction\n * @param nonce Current nonce on the access key used to sign the delegate action\n * @param publicKey Public key for the access key used to sign the delegate action\n * @param receiverId Account ID for the intended receiver of the meta transaction\n * @param senderId Account ID for the intended signer of the delegate action\n */\nfunction buildDelegateAction({ actions, maxBlockHeight, nonce, publicKey, receiverId, senderId, }) {\n return new DelegateAction({\n senderId,\n receiverId,\n actions: actions.map((a) => {\n // @ts-expect-error type workaround\n if (!a.type && !a.params) {\n return a;\n }\n // @ts-expect-error type workaround\n switch (a.type) {\n case 'AddKey': {\n // @ts-expect-error type workaround\n const { publicKey, accessKey } = a.params;\n return addKey(publicKey, accessKey);\n }\n case 'CreateAccount': {\n // @ts-expect-error type workaround\n return createAccount(a.params.createAccount);\n }\n case 'DeleteAccount': {\n // @ts-expect-error type workaround\n return deleteAccount(a.params.deleteAccount);\n }\n case 'DeleteKey': {\n // @ts-expect-error type workaround\n return deleteKey(a.params.publicKey);\n }\n case 'DeployContract': {\n // @ts-expect-error type workaround\n return deployContract(a.params.code);\n }\n case 'FunctionCall': {\n // @ts-expect-error type workaround\n const { methodName, args, gas, deposit } = a.params;\n return functionCall(methodName, args, gas, deposit);\n }\n case 'Stake': {\n // @ts-expect-error type workaround\n return stake(a.params.stake, a.params.publicKey);\n }\n case 'Transfer': {\n // @ts-expect-error type workaround\n const { deposit } = a.params;\n return transfer(deposit);\n }\n }\n throw new Error('Unrecognized action');\n }),\n nonce,\n maxBlockHeight,\n publicKey,\n });\n}\nexports.buildDelegateAction = buildDelegateAction;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./action_creators\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./create_transaction\"), exports);\n__exportStar(require(\"./delegate\"), exports);\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./sign\"), exports);\n__exportStar(require(\"./signature\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelegateActionPrefix = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst ACTIONABLE_MESSAGE_BASE = Math.pow(2, 30);\n// const NON_ACTIONABLE_MESSAGE_BASE = Math.pow(2, 31);\n/** The set of NEPs for which an [NEP-461](https://github.com/near/NEPs/pull/461) prefix is required on the message prior to hashing **/\nconst NEP = {\n MetaTransactions: 366,\n};\n/** Base class for NEP message prefixes **/\nclass NEPPrefix extends types_1.Assignable {\n}\n/** Class for constructing prefixes on actionable (on-chain) messages **/\nclass ActionableMessagePrefix extends NEPPrefix {\n /** Given the NEP number, set the prefix using 2^30 as the offset **/\n constructor(prefix) {\n super({ prefix: ACTIONABLE_MESSAGE_BASE + prefix });\n }\n}\n/**\n * Class for constructing prefixes on non-actionable (off-chain) messages\n * @todo uncomment when off-chain messages are supported\n * **/\n// abstract class NonActionableMessagePrefix extends NEPPrefix {\n// /** Given the NEP number, set the prefix using 2^31 as the offset **/\n// protected constructor(prefix: number) {\n// super({ prefix: NON_ACTIONABLE_MESSAGE_BASE + prefix });\n// }\n// }\n/** Prefix for delegate actions whose signatures must always be distinguishable from valid transaction signatures **/\nclass DelegateActionPrefix extends ActionableMessagePrefix {\n constructor() { super(NEP.MetaTransactions); }\n}\nexports.DelegateActionPrefix = DelegateActionPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCHEMA = exports.SignedTransaction = exports.Transaction = exports.decodeSignedTransaction = exports.decodeTransaction = exports.encodeTransaction = exports.encodeSignedDelegate = exports.encodeDelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst borsh_1 = require(\"borsh\");\nconst prefix_1 = require(\"./prefix\");\n/**\n * Borsh-encode a delegate action for inclusion as an action within a meta transaction\n * NB per NEP-461 this requires a Borsh-serialized prefix specific to delegate actions, ensuring\n * signed delegate actions may never be identical to signed transactions with the same fields\n * @param delegateAction Delegate action to be signed by the meta transaction sender\n */\nfunction encodeDelegateAction(delegateAction) {\n return new Uint8Array([\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateActionPrefix, new prefix_1.DelegateActionPrefix()),\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateAction, delegateAction),\n ]);\n}\nexports.encodeDelegateAction = encodeDelegateAction;\n/**\n * Borsh-encode a signed delegate for validation and execution by a relayer\n * @param signedDelegate Signed delegate to be executed in a meta transaction\n */\nfunction encodeSignedDelegate(signedDelegate) {\n return (0, borsh_1.serialize)(exports.SCHEMA.SignedDelegate, signedDelegate);\n}\nexports.encodeSignedDelegate = encodeSignedDelegate;\n/**\n* Borsh-encode a transaction or signed transaction into a serialized form.\n* @param transaction The transaction or signed transaction object to be encoded.\n* @returns A serialized representation of the input transaction.\n*/\nfunction encodeTransaction(transaction) {\n const schema = transaction instanceof SignedTransaction ? exports.SCHEMA.SignedTransaction : exports.SCHEMA.Transaction;\n return (0, borsh_1.serialize)(schema, transaction);\n}\nexports.encodeTransaction = encodeTransaction;\n/**\n * Borsh-decode a Transaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeTransaction(bytes) {\n return new Transaction((0, borsh_1.deserialize)(exports.SCHEMA.Transaction, bytes));\n}\nexports.decodeTransaction = decodeTransaction;\n/**\n * Borsh-decode a SignedTransaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeSignedTransaction(bytes) {\n return new SignedTransaction((0, borsh_1.deserialize)(exports.SCHEMA.SignedTransaction, bytes));\n}\nexports.decodeSignedTransaction = decodeSignedTransaction;\nclass Transaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeTransaction(bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeSignedTransaction(bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\nexports.SCHEMA = new class BorshSchema {\n constructor() {\n this.Signature = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 64 } },\n }\n };\n this.PublicKey = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 32 } },\n }\n };\n this.FunctionCallPermission = {\n struct: {\n allowance: { option: 'u128' },\n receiverId: 'string',\n methodNames: { array: { type: 'string' } },\n }\n };\n this.FullAccessPermission = {\n struct: {}\n };\n this.AccessKeyPermission = {\n enum: [\n { struct: { functionCall: this.FunctionCallPermission } },\n { struct: { fullAccess: this.FullAccessPermission } },\n ]\n };\n this.AccessKey = {\n struct: {\n nonce: 'u64',\n permission: this.AccessKeyPermission,\n }\n };\n this.CreateAccount = {\n struct: {}\n };\n this.DeployContract = {\n struct: {\n code: { array: { type: 'u8' } },\n }\n };\n this.FunctionCall = {\n struct: {\n methodName: 'string',\n args: { array: { type: 'u8' } },\n gas: 'u64',\n deposit: 'u128',\n }\n };\n this.Transfer = {\n struct: {\n deposit: 'u128',\n }\n };\n this.Stake = {\n struct: {\n stake: 'u128',\n publicKey: this.PublicKey,\n }\n };\n this.AddKey = {\n struct: {\n publicKey: this.PublicKey,\n accessKey: this.AccessKey,\n }\n };\n this.DeleteKey = {\n struct: {\n publicKey: this.PublicKey,\n }\n };\n this.DeleteAccount = {\n struct: {\n beneficiaryId: 'string',\n }\n };\n this.DelegateActionPrefix = {\n struct: {\n prefix: 'u32',\n }\n };\n this.ClassicActions = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n ]\n };\n this.DelegateAction = {\n struct: {\n senderId: 'string',\n receiverId: 'string',\n actions: { array: { type: this.ClassicActions } },\n nonce: 'u64',\n maxBlockHeight: 'u64',\n publicKey: this.PublicKey,\n }\n };\n this.SignedDelegate = {\n struct: {\n delegateAction: this.DelegateAction,\n signature: this.Signature,\n }\n };\n this.Action = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n { struct: { signedDelegate: this.SignedDelegate } },\n ]\n };\n this.Transaction = {\n struct: {\n signerId: 'string',\n publicKey: this.PublicKey,\n nonce: 'u64',\n receiverId: 'string',\n blockHash: { array: { type: 'u8', len: 32 } },\n actions: { array: { type: this.Action } },\n }\n };\n this.SignedTransaction = {\n struct: {\n transaction: this.Transaction,\n signature: this.Signature,\n }\n };\n }\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signDelegateAction = exports.signTransaction = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst actions_1 = require(\"./actions\");\nconst create_transaction_1 = require(\"./create_transaction\");\nconst schema_1 = require(\"./schema\");\nconst signature_1 = require(\"./signature\");\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nfunction signTransactionObject(transaction, signer, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeTransaction)(transaction);\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n const signature = yield signer.signMessage(message, accountId, networkId);\n const signedTx = new schema_1.SignedTransaction({\n transaction,\n signature: new signature_1.Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n });\n}\nfunction signTransaction(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (args[0].constructor === schema_1.Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = yield signer.getPublicKey(accountId, networkId);\n const transaction = (0, create_transaction_1.createTransaction)(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n });\n}\nexports.signTransaction = signTransaction;\n/**\n * Sign a delegate action\n * @options SignDelegate options\n * @param options.delegateAction Delegate action to be signed by the meta transaction sender\n * @param options.signer Signer instance for the meta transaction sender\n */\nfunction signDelegateAction({ delegateAction, signer }) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeDelegateAction)(delegateAction);\n const signature = yield signer.sign(message);\n const signedDelegateAction = new actions_1.SignedDelegate({\n delegateAction,\n signature: new signature_1.Signature({\n keyType: delegateAction.publicKey.keyType,\n data: signature,\n }),\n });\n return {\n hash: new Uint8Array((0, sha256_1.sha256)(message)),\n signedDelegateAction,\n };\n });\n}\nexports.signDelegateAction = signDelegateAction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signature = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Signature extends types_1.Assignable {\n}\nexports.Signature = Signature;\n","\"use strict\";\nexports.__esModule = true;\nexports.DecodeBuffer = exports.EncodeBuffer = void 0;\nvar EncodeBuffer = /** @class */ (function () {\n function EncodeBuffer() {\n this.offset = 0;\n this.buffer_size = 256;\n this.buffer = new ArrayBuffer(this.buffer_size);\n this.view = new DataView(this.buffer);\n }\n EncodeBuffer.prototype.resize_if_necessary = function (needed_space) {\n if (this.buffer_size - this.offset < needed_space) {\n this.buffer_size = Math.max(this.buffer_size * 2, this.buffer_size + needed_space);\n var new_buffer = new ArrayBuffer(this.buffer_size);\n new Uint8Array(new_buffer).set(new Uint8Array(this.buffer));\n this.buffer = new_buffer;\n this.view = new DataView(new_buffer);\n }\n };\n EncodeBuffer.prototype.get_used_buffer = function () {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n };\n EncodeBuffer.prototype.store_value = function (value, type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.resize_if_necessary(size);\n var toCall = type[0] === 'f' ? \"setFloat\".concat(bSize) : type[0] === 'i' ? \"setInt\".concat(bSize) : \"setUint\".concat(bSize);\n this.view[toCall](this.offset, value, true);\n this.offset += size;\n };\n EncodeBuffer.prototype.store_bytes = function (from) {\n this.resize_if_necessary(from.length);\n new Uint8Array(this.buffer).set(new Uint8Array(from), this.offset);\n this.offset += from.length;\n };\n return EncodeBuffer;\n}());\nexports.EncodeBuffer = EncodeBuffer;\nvar DecodeBuffer = /** @class */ (function () {\n function DecodeBuffer(buf) {\n this.offset = 0;\n this.buffer_size = buf.length;\n this.buffer = new ArrayBuffer(buf.length);\n new Uint8Array(this.buffer).set(buf);\n this.view = new DataView(this.buffer);\n }\n DecodeBuffer.prototype.assert_enough_buffer = function (size) {\n if (this.offset + size > this.buffer.byteLength) {\n throw new Error('Error in schema, the buffer is smaller than expected');\n }\n };\n DecodeBuffer.prototype.consume_value = function (type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.assert_enough_buffer(size);\n var toCall = type[0] === 'f' ? \"getFloat\".concat(bSize) : type[0] === 'i' ? \"getInt\".concat(bSize) : \"getUint\".concat(bSize);\n var ret = this.view[toCall](this.offset, true);\n this.offset += size;\n return ret;\n };\n DecodeBuffer.prototype.consume_bytes = function (size) {\n this.assert_enough_buffer(size);\n var ret = this.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return ret;\n };\n return DecodeBuffer;\n}());\nexports.DecodeBuffer = DecodeBuffer;\n","\"use strict\";\nexports.__esModule = true;\nexports.BorshDeserializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar BorshDeserializer = /** @class */ (function () {\n function BorshDeserializer(bufferArray) {\n this.buffer = new buffer_js_1.DecodeBuffer(bufferArray);\n }\n BorshDeserializer.prototype.decode = function (schema) {\n return this.decode_value(schema);\n };\n BorshDeserializer.prototype.decode_value = function (schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.decode_integer(schema);\n if (schema === 'string')\n return this.decode_string();\n if (schema === 'bool')\n return this.decode_boolean();\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.decode_option(schema);\n if ('enum' in schema)\n return this.decode_enum(schema);\n if ('array' in schema)\n return this.decode_array(schema);\n if ('set' in schema)\n return this.decode_set(schema);\n if ('map' in schema)\n return this.decode_map(schema);\n if ('struct' in schema)\n return this.decode_struct(schema);\n }\n throw new Error(\"Unsupported type: \".concat(schema));\n };\n BorshDeserializer.prototype.decode_integer = function (schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n return this.buffer.consume_value(schema);\n }\n return this.decode_bigint(size, schema.startsWith('i'));\n };\n BorshDeserializer.prototype.decode_bigint = function (size, signed) {\n if (signed === void 0) { signed = false; }\n var buffer_len = size / 8;\n var buffer = new Uint8Array(this.buffer.consume_bytes(buffer_len));\n var bits = buffer.reduceRight(function (r, x) { return r + x.toString(16).padStart(2, '0'); }, '');\n if (signed && buffer[buffer_len - 1]) {\n return BigInt.asIntN(size, BigInt(\"0x\".concat(bits)));\n }\n return BigInt(\"0x\".concat(bits));\n };\n BorshDeserializer.prototype.decode_string = function () {\n var len = this.decode_integer('u32');\n var buffer = new Uint8Array(this.buffer.consume_bytes(len));\n return String.fromCharCode.apply(null, buffer);\n };\n BorshDeserializer.prototype.decode_boolean = function () {\n return this.buffer.consume_value('u8') > 0;\n };\n BorshDeserializer.prototype.decode_option = function (schema) {\n var option = this.buffer.consume_value('u8');\n if (option === 1) {\n return this.decode_value(schema.option);\n }\n if (option !== 0) {\n throw new Error(\"Invalid option \".concat(option));\n }\n return null;\n };\n BorshDeserializer.prototype.decode_enum = function (schema) {\n var _a;\n var valueIndex = this.buffer.consume_value('u8');\n if (valueIndex > schema[\"enum\"].length) {\n throw new Error(\"Enum option \".concat(valueIndex, \" is not available\"));\n }\n var struct = schema[\"enum\"][valueIndex].struct;\n var key = Object.keys(struct)[0];\n return _a = {}, _a[key] = this.decode_value(struct[key]), _a;\n };\n BorshDeserializer.prototype.decode_array = function (schema) {\n var result = [];\n var len = schema.array.len ? schema.array.len : this.decode_integer('u32');\n for (var i = 0; i < len; ++i) {\n result.push(this.decode_value(schema.array.type));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_set = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Set();\n for (var i = 0; i < len; ++i) {\n result.add(this.decode_value(schema.set));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_map = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Map();\n for (var i = 0; i < len; ++i) {\n var key = this.decode_value(schema.map.key);\n var value = this.decode_value(schema.map.value);\n result.set(key, value);\n }\n return result;\n };\n BorshDeserializer.prototype.decode_struct = function (schema) {\n var result = {};\n for (var key in schema.struct) {\n result[key] = this.decode_value(schema.struct[key]);\n }\n return result;\n };\n return BorshDeserializer;\n}());\nexports.BorshDeserializer = BorshDeserializer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.deserialize = exports.serialize = void 0;\nvar serialize_js_1 = require(\"./serialize.js\");\nvar deserialize_js_1 = require(\"./deserialize.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nfunction serialize(schema, value, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var serializer = new serialize_js_1.BorshSerializer(validate);\n return serializer.encode(value, schema);\n}\nexports.serialize = serialize;\nfunction deserialize(schema, buffer, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var deserializer = new deserialize_js_1.BorshDeserializer(buffer);\n return deserializer.decode(schema);\n}\nexports.deserialize = deserialize;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.BorshSerializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nvar BorshSerializer = /** @class */ (function () {\n function BorshSerializer(checkTypes) {\n this.encoded = new buffer_js_1.EncodeBuffer();\n this.fieldPath = ['value'];\n this.checkTypes = checkTypes;\n }\n BorshSerializer.prototype.encode = function (value, schema) {\n this.encode_value(value, schema);\n return this.encoded.get_used_buffer();\n };\n BorshSerializer.prototype.encode_value = function (value, schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.encode_integer(value, schema);\n if (schema === 'string')\n return this.encode_string(value);\n if (schema === 'bool')\n return this.encode_boolean(value);\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.encode_option(value, schema);\n if ('enum' in schema)\n return this.encode_enum(value, schema);\n if ('array' in schema)\n return this.encode_array(value, schema);\n if ('set' in schema)\n return this.encode_set(value, schema);\n if ('map' in schema)\n return this.encode_map(value, schema);\n if ('struct' in schema)\n return this.encode_struct(value, schema);\n }\n };\n BorshSerializer.prototype.encode_integer = function (value, schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n this.checkTypes && utils.expect_type(value, 'number', this.fieldPath);\n this.encoded.store_value(value, schema);\n }\n else {\n this.checkTypes && utils.expect_bigint(value, this.fieldPath);\n this.encode_bigint(BigInt(value), size);\n }\n };\n BorshSerializer.prototype.encode_bigint = function (value, size) {\n var buffer_len = size / 8;\n var buffer = new Uint8Array(buffer_len);\n for (var i = 0; i < buffer_len; i++) {\n buffer[i] = Number(value & BigInt(0xff));\n value = value >> BigInt(8);\n }\n this.encoded.store_bytes(new Uint8Array(buffer));\n };\n BorshSerializer.prototype.encode_string = function (value) {\n this.checkTypes && utils.expect_type(value, 'string', this.fieldPath);\n var _value = value;\n // 4 bytes for length\n this.encoded.store_value(_value.length, 'u32');\n // string bytes\n for (var i = 0; i < _value.length; i++) {\n this.encoded.store_value(_value.charCodeAt(i), 'u8');\n }\n };\n BorshSerializer.prototype.encode_boolean = function (value) {\n this.checkTypes && utils.expect_type(value, 'boolean', this.fieldPath);\n this.encoded.store_value(value ? 1 : 0, 'u8');\n };\n BorshSerializer.prototype.encode_option = function (value, schema) {\n if (value === null || value === undefined) {\n this.encoded.store_value(0, 'u8');\n }\n else {\n this.encoded.store_value(1, 'u8');\n this.encode_value(value, schema.option);\n }\n };\n BorshSerializer.prototype.encode_enum = function (value, schema) {\n this.checkTypes && utils.expect_enum(value, this.fieldPath);\n var valueKey = Object.keys(value)[0];\n for (var i = 0; i < schema[\"enum\"].length; i++) {\n var valueSchema = schema[\"enum\"][i];\n if (valueKey === Object.keys(valueSchema.struct)[0]) {\n this.encoded.store_value(i, 'u8');\n return this.encode_struct(value, valueSchema);\n }\n }\n throw new Error(\"Enum key (\".concat(valueKey, \") not found in enum schema: \").concat(JSON.stringify(schema), \" at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_array = function (value, schema) {\n if (utils.isArrayLike(value))\n return this.encode_arraylike(value, schema);\n if (value instanceof ArrayBuffer)\n return this.encode_buffer(value, schema);\n throw new Error(\"Expected Array-like not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_arraylike = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.length, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.length, 'u32');\n }\n // array values\n for (var i = 0; i < value.length; i++) {\n this.encode_value(value[i], schema.array.type);\n }\n };\n BorshSerializer.prototype.encode_buffer = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.byteLength, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.byteLength, 'u32');\n }\n // array values\n this.encoded.store_bytes(new Uint8Array(value));\n };\n BorshSerializer.prototype.encode_set = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isSet = value instanceof Set;\n var values = isSet ? Array.from(value.values()) : Object.values(value);\n // 4 bytes for length\n this.encoded.store_value(values.length, 'u32');\n // set values\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value_1 = values_1[_i];\n this.encode_value(value_1, schema.set);\n }\n };\n BorshSerializer.prototype.encode_map = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isMap = value instanceof Map;\n var keys = isMap ? Array.from(value.keys()) : Object.keys(value);\n // 4 bytes for length\n this.encoded.store_value(keys.length, 'u32');\n // store key/values\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n this.encode_value(key, schema.map.key);\n this.encode_value(isMap ? value.get(key) : value[key], schema.map.value);\n }\n };\n BorshSerializer.prototype.encode_struct = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n for (var _i = 0, _a = Object.keys(schema.struct); _i < _a.length; _i++) {\n var key = _a[_i];\n this.fieldPath.push(key);\n this.encode_value(value[key], schema.struct[key]);\n this.fieldPath.pop();\n }\n };\n return BorshSerializer;\n}());\nexports.BorshSerializer = BorshSerializer;\n","\"use strict\";\nexports.__esModule = true;\nexports.integers = void 0;\nexports.integers = ['u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128', 'f32', 'f64'];\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.validate_schema = exports.ErrorSchema = exports.expect_enum = exports.expect_same_size = exports.expect_bigint = exports.expect_type = exports.isArrayLike = void 0;\nvar types_js_1 = require(\"./types.js\");\nfunction isArrayLike(value) {\n // source: https://stackoverflow.com/questions/24048547/checking-if-an-object-is-array-like\n return (Array.isArray(value) ||\n (!!value &&\n typeof value === 'object' &&\n 'length' in value &&\n typeof (value.length) === 'number' &&\n (value.length === 0 ||\n (value.length > 0 &&\n (value.length - 1) in value))));\n}\nexports.isArrayLike = isArrayLike;\nfunction expect_type(value, type, fieldPath) {\n if (typeof (value) !== type) {\n throw new Error(\"Expected \".concat(type, \" not \").concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_type = expect_type;\nfunction expect_bigint(value, fieldPath) {\n var basicType = ['number', 'string', 'bigint', 'boolean'].includes(typeof (value));\n var strObject = typeof (value) === 'object' && value !== null && 'toString' in value;\n if (!basicType && !strObject) {\n throw new Error(\"Expected bigint, number, boolean or string not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_bigint = expect_bigint;\nfunction expect_same_size(length, expected, fieldPath) {\n if (length !== expected) {\n throw new Error(\"Array length \".concat(length, \" does not match schema length \").concat(expected, \" at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_same_size = expect_same_size;\nfunction expect_enum(value, fieldPath) {\n if (typeof (value) !== 'object' || value === null) {\n throw new Error(\"Expected object not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_enum = expect_enum;\n// Validate Schema\nvar VALID_STRING_TYPES = types_js_1.integers.concat(['bool', 'string']);\nvar VALID_OBJECT_KEYS = ['option', 'enum', 'array', 'set', 'map', 'struct'];\nvar ErrorSchema = /** @class */ (function (_super) {\n __extends(ErrorSchema, _super);\n function ErrorSchema(schema, expected) {\n var message = \"Invalid schema: \".concat(JSON.stringify(schema), \" expected \").concat(expected);\n return _super.call(this, message) || this;\n }\n return ErrorSchema;\n}(Error));\nexports.ErrorSchema = ErrorSchema;\nfunction validate_schema(schema) {\n if (typeof (schema) === 'string' && VALID_STRING_TYPES.includes(schema)) {\n return;\n }\n if (schema && typeof (schema) === 'object') {\n var keys = Object.keys(schema);\n if (keys.length === 1 && VALID_OBJECT_KEYS.includes(keys[0])) {\n var key = keys[0];\n if (key === 'option')\n return validate_schema(schema[key]);\n if (key === 'enum')\n return validate_enum_schema(schema[key]);\n if (key === 'array')\n return validate_array_schema(schema[key]);\n if (key === 'set')\n return validate_schema(schema[key]);\n if (key === 'map')\n return validate_map_schema(schema[key]);\n if (key === 'struct')\n return validate_struct_schema(schema[key]);\n }\n }\n throw new ErrorSchema(schema, VALID_OBJECT_KEYS.join(', ') + ' or ' + VALID_STRING_TYPES.join(', '));\n}\nexports.validate_schema = validate_schema;\nfunction validate_enum_schema(schema) {\n if (!Array.isArray(schema))\n throw new ErrorSchema(schema, 'Array');\n for (var _i = 0, schema_1 = schema; _i < schema_1.length; _i++) {\n var sch = schema_1[_i];\n if (typeof sch !== 'object' || !('struct' in sch)) {\n throw new Error('Missing \"struct\" key in enum schema');\n }\n if (typeof sch.struct !== 'object' || Object.keys(sch.struct).length !== 1) {\n throw new Error('The \"struct\" in each enum must have a single key');\n }\n validate_schema({ struct: sch.struct });\n }\n}\nfunction validate_array_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, '{ type, len? }');\n if (schema.len && typeof schema.len !== 'number') {\n throw new Error(\"Invalid schema: \".concat(schema));\n }\n if ('type' in schema)\n return validate_schema(schema.type);\n throw new ErrorSchema(schema, '{ type, len? }');\n}\nfunction validate_map_schema(schema) {\n if (typeof schema === 'object' && 'key' in schema && 'value' in schema) {\n validate_schema(schema.key);\n validate_schema(schema.value);\n }\n else {\n throw new ErrorSchema(schema, '{ key, value }');\n }\n}\nfunction validate_struct_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, 'object');\n for (var key in schema) {\n validate_schema(schema[key]);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = BigInt('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = BigInt(10) ** BigInt(exports.NEAR_NOMINATION_EXP);\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = BigInt(10);\nfor (let i = 0, offset = BigInt(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset * BN10) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n let balanceBN = BigInt(balance);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN += ROUNDING_OFFSETS[roundingExp];\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || \"0\";\n const fractionStr = balance\n .substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, \"0\")\n .substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split(\".\");\n const wholePart = split[0];\n const fracPart = split[1] || \"\";\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, \"0\"));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, \"\").trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, \"\");\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, \"\");\n if (value === \"\") {\n return \"0\";\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, \"$1,$2\");\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBigIntAsc = void 0;\nfunction sortBigIntAsc(a, b) {\n return (a < b ? -1 : a > b ? 1 : 0);\n}\nexports.sortBigIntAsc = sortBigIntAsc;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst utils_1 = require(\"./utils\");\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const num = BigInt(numSeats);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (stakesSum < num) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = BigInt(1), right = stakesSum + BigInt(1);\n while (left !== right - BigInt(1)) {\n const mid = (left + right) / BigInt(2);\n let found = false;\n let currentSum = BigInt(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum + (stakes[i] / mid);\n if (currentSum >= num) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (validators.length < maxNumberOfSeats) {\n return stakesSum * BigInt(minimumStakeRatio[0]) / BigInt(minimumStakeRatio[1]);\n }\n else {\n return stakes[0] + BigInt(1);\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = void 0;\nvar near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nvar wallet_account_1 = require(\"./wallet_account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\n/**\n * This module contains the main class developers will use to interact with NEAR.\n * The {@link Near} class is used to interact with {@link \"@near-js/accounts\".account.Account | Account} through the {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider}.\n * It is configured via the {@link NearConfig}.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#account](https://docs.near.org/tools/near-api-js/quick-reference#account)\n *\n * @module near\n */\nconst accounts_1 = require(\"@near-js/accounts\");\n/**\n * This is the main class developers should use to interact with NEAR.\n * @example\n * ```js\n * const near = new Near(config);\n * ```\n */\nclass Near {\n constructor(config) {\n var _a;\n this.config = config;\n this.connection = accounts_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: config.provider || { type: 'JsonRpcProvider', args: { url: config.nodeUrl, headers: config.headers } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || ((_a = config.deps) === null || _a === void 0 ? void 0 : _a.keyStore) },\n jsvmAccountId: config.jsvmAccountId || `jsvm.${config.networkId}`\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? BigInt(config.initialBalance) : BigInt('500000000000000000000000000');\n this.accountCreator = new accounts_1.LocalAccountCreator(new accounts_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new accounts_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n * @param accountId near accountId used to interact with the network.\n */\n account(accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const account = new accounts_1.Account(this.connection, accountId);\n return account;\n });\n }\n /**\n * Create an account using the {@link AccountCreator}. Either:\n * * using a masterAccount with {@link LocalAccountCreator}\n * * using the helperUrl with {@link UrlAccountCreator}\n * @see {@link NearConfig#masterAccount} and {@link NearConfig#helperUrl}\n *\n * @param accountId\n * @param publicKey\n */\n createAccount(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n yield this.accountCreator.createAccount(accountId, publicKey);\n return new accounts_1.Account(this.connection, accountId);\n });\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletConnection = void 0;\n/**\n * This module exposes two classes:\n * * {@link WalletConnection} which redirects users to [NEAR Wallet](https://wallet.near.org/) for key management.\n * * {@link ConnectedWalletAccount} is an {@link \"@near-js/accounts\".account.Account | Account} implementation that uses {@link WalletConnection} to get keys\n *\n * @module walletAccount\n */\nconst accounts_1 = require(\"@near-js/accounts\");\nconst crypto_1 = require(\"@near-js/crypto\");\nconst utils_1 = require(\"@near-js/utils\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst borsh_1 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\n/**\n * This class is not intended for use outside the browser. Without `window` (i.e. in server contexts), it will instantiate but will throw a clear error when used.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#wallet](https://docs.near.org/tools/near-api-js/quick-reference#wallet)\n * @example\n * ```js\n * // create new WalletConnection instance\n * const wallet = new WalletConnection(near, 'my-app');\n *\n * // If not signed in redirect to the NEAR wallet to sign in\n * // keys will be stored in the BrowserLocalStorageKeyStore\n * if(!wallet.isSignedIn()) return wallet.requestSignIn()\n * ```\n */\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n if (typeof (appKeyPrefix) !== 'string') {\n throw new Error('Please define a clear appKeyPrefix for this WalletConnection instance as the second argument to the constructor');\n }\n if (typeof window === 'undefined') {\n return new Proxy(this, {\n get(target, property) {\n if (property === 'isSignedIn') {\n return () => false;\n }\n if (property === 'getAccountId') {\n return () => '';\n }\n if (target[property] && typeof target[property] === 'function') {\n return () => {\n throw new Error('No window found in context, please ensure you are using WalletConnection on the browser');\n };\n }\n return target[property];\n }\n });\n }\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInPromise = this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletConnection is authorized with the wallet.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn();\n * ```\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns promise of completing signing in after redirecting from wallet\n * @example\n * ```js\n * // on login callback page\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn(); // false\n * await wallet.isSignedInAsync(); // true\n * ```\n */\n isSignedInAsync() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._completeSignInPromise) {\n return this.isSignedIn();\n }\n yield this._completeSignInPromise;\n return this.isSignedIn();\n });\n }\n /**\n * Returns authorized Account ID.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.getAccountId();\n * ```\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Constructs string URL to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // return string URL to the NEAR Wallet\n * const url = await wallet.requestSignInUrl({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignInUrl({ contractId, methodNames, successUrl, failureUrl }) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', failureUrl || currentUrl.href);\n if (contractId) {\n /* Throws exception if contract account does not exist */\n const contractAccount = yield this._near.account(contractId);\n yield contractAccount.state();\n newUrl.searchParams.set('contract_id', contractId);\n const accessKey = crypto_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n yield this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n if (methodNames) {\n methodNames.forEach(methodName => {\n newUrl.searchParams.append('methodNames', methodName);\n });\n }\n return newUrl.toString();\n });\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // redirects to the NEAR Wallet\n * wallet.requestSignIn({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignIn(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = yield this.requestSignInUrl(options);\n window.location.assign(url);\n });\n }\n /**\n * Constructs string URL to the wallet to sign a transaction or batch of transactions.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactionsUrl({ transactions, meta, callbackUrl }) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => (0, borsh_1.serialize)(transactions_1.SCHEMA.Transaction, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n if (meta)\n newUrl.searchParams.set('meta', meta);\n return newUrl.toString();\n }\n /**\n * Requests the user to quickly sign for a transaction or batch of transactions by redirecting to the wallet.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactions(options) {\n const url = this.requestSignTransactionsUrl(options);\n window.location.assign(url);\n }\n /**\n * @hidden\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n _completeSignInWithAccessKey() {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n const authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(authData));\n if (publicKey) {\n yield this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n this._authData = authData;\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n currentUrl.searchParams.delete('meta');\n currentUrl.searchParams.delete('transactionHashes');\n window.history.replaceState({}, document.title, currentUrl.toString());\n });\n }\n /**\n * @hidden\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n _moveKeyFromTempToPermanent(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n yield this._keyStore.setKey(this._networkId, accountId, keyPair);\n yield this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n });\n }\n /**\n * Sign out from the current account\n * @example\n * walletConnection.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using {@link WalletConnection} when no local key is available.\n */\nclass ConnectedWalletAccount extends accounts_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n /**\n * Sign a transaction by redirecting to the NEAR Wallet\n * @see {@link WalletConnection#requestSignTransactions}\n * @param options An optional options object\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions An array of transaction actions to be performed.\n * @param options.walletMeta Additional metadata to be included in the wallet signing request.\n * @param options.walletCallbackUrl URL to redirect upon completion of the wallet signing process. Default: current URL.\n */\n signAndSendTransaction({ receiverId, actions, walletMeta, walletCallbackUrl = window.location.href }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const localKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = yield this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n }\n catch (e) {\n if (e.type === 'NotEnoughAllowance') {\n accessKey = yield this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = (0, utils_1.baseDecode)(block.header.hash);\n const publicKey = crypto_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce + BigInt(1);\n const transaction = (0, transactions_1.createTransaction)(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n yield this.walletConnection.requestSignTransactions({\n transactions: [transaction],\n meta: walletMeta,\n callbackUrl: walletCallbackUrl\n });\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TransactionQueue which also can be used to watch for status?\n });\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of \\{access_key: AccessKey, public_key: PublicKey\\} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n });\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n */\n accessKeyForTransaction(receiverId, actions, localKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeys = yield this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key.toString() === localKey.toString());\n if (accessKey && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n return null;\n });\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nexports.__esModule = true;\nexports.DecodeBuffer = exports.EncodeBuffer = void 0;\nvar EncodeBuffer = /** @class */ (function () {\n function EncodeBuffer() {\n this.offset = 0;\n this.buffer_size = 256;\n this.buffer = new ArrayBuffer(this.buffer_size);\n this.view = new DataView(this.buffer);\n }\n EncodeBuffer.prototype.resize_if_necessary = function (needed_space) {\n if (this.buffer_size - this.offset < needed_space) {\n this.buffer_size = Math.max(this.buffer_size * 2, this.buffer_size + needed_space);\n var new_buffer = new ArrayBuffer(this.buffer_size);\n new Uint8Array(new_buffer).set(new Uint8Array(this.buffer));\n this.buffer = new_buffer;\n this.view = new DataView(new_buffer);\n }\n };\n EncodeBuffer.prototype.get_used_buffer = function () {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n };\n EncodeBuffer.prototype.store_value = function (value, type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.resize_if_necessary(size);\n var toCall = type[0] === 'f' ? \"setFloat\".concat(bSize) : type[0] === 'i' ? \"setInt\".concat(bSize) : \"setUint\".concat(bSize);\n this.view[toCall](this.offset, value, true);\n this.offset += size;\n };\n EncodeBuffer.prototype.store_bytes = function (from) {\n this.resize_if_necessary(from.length);\n new Uint8Array(this.buffer).set(new Uint8Array(from), this.offset);\n this.offset += from.length;\n };\n return EncodeBuffer;\n}());\nexports.EncodeBuffer = EncodeBuffer;\nvar DecodeBuffer = /** @class */ (function () {\n function DecodeBuffer(buf) {\n this.offset = 0;\n this.buffer_size = buf.length;\n this.buffer = new ArrayBuffer(buf.length);\n new Uint8Array(this.buffer).set(buf);\n this.view = new DataView(this.buffer);\n }\n DecodeBuffer.prototype.assert_enough_buffer = function (size) {\n if (this.offset + size > this.buffer.byteLength) {\n throw new Error('Error in schema, the buffer is smaller than expected');\n }\n };\n DecodeBuffer.prototype.consume_value = function (type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.assert_enough_buffer(size);\n var toCall = type[0] === 'f' ? \"getFloat\".concat(bSize) : type[0] === 'i' ? \"getInt\".concat(bSize) : \"getUint\".concat(bSize);\n var ret = this.view[toCall](this.offset, true);\n this.offset += size;\n return ret;\n };\n DecodeBuffer.prototype.consume_bytes = function (size) {\n this.assert_enough_buffer(size);\n var ret = this.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return ret;\n };\n return DecodeBuffer;\n}());\nexports.DecodeBuffer = DecodeBuffer;\n","\"use strict\";\nexports.__esModule = true;\nexports.BorshDeserializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar BorshDeserializer = /** @class */ (function () {\n function BorshDeserializer(bufferArray) {\n this.buffer = new buffer_js_1.DecodeBuffer(bufferArray);\n }\n BorshDeserializer.prototype.decode = function (schema) {\n return this.decode_value(schema);\n };\n BorshDeserializer.prototype.decode_value = function (schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.decode_integer(schema);\n if (schema === 'string')\n return this.decode_string();\n if (schema === 'bool')\n return this.decode_boolean();\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.decode_option(schema);\n if ('enum' in schema)\n return this.decode_enum(schema);\n if ('array' in schema)\n return this.decode_array(schema);\n if ('set' in schema)\n return this.decode_set(schema);\n if ('map' in schema)\n return this.decode_map(schema);\n if ('struct' in schema)\n return this.decode_struct(schema);\n }\n throw new Error(\"Unsupported type: \".concat(schema));\n };\n BorshDeserializer.prototype.decode_integer = function (schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n return this.buffer.consume_value(schema);\n }\n return this.decode_bigint(size, schema.startsWith('i'));\n };\n BorshDeserializer.prototype.decode_bigint = function (size, signed) {\n if (signed === void 0) { signed = false; }\n var buffer_len = size / 8;\n var buffer = new Uint8Array(this.buffer.consume_bytes(buffer_len));\n var bits = buffer.reduceRight(function (r, x) { return r + x.toString(16).padStart(2, '0'); }, '');\n if (signed && buffer[buffer_len - 1]) {\n return BigInt.asIntN(size, BigInt(\"0x\".concat(bits)));\n }\n return BigInt(\"0x\".concat(bits));\n };\n BorshDeserializer.prototype.decode_string = function () {\n var len = this.decode_integer('u32');\n var buffer = new Uint8Array(this.buffer.consume_bytes(len));\n return String.fromCharCode.apply(null, buffer);\n };\n BorshDeserializer.prototype.decode_boolean = function () {\n return this.buffer.consume_value('u8') > 0;\n };\n BorshDeserializer.prototype.decode_option = function (schema) {\n var option = this.buffer.consume_value('u8');\n if (option === 1) {\n return this.decode_value(schema.option);\n }\n if (option !== 0) {\n throw new Error(\"Invalid option \".concat(option));\n }\n return null;\n };\n BorshDeserializer.prototype.decode_enum = function (schema) {\n var _a;\n var valueIndex = this.buffer.consume_value('u8');\n if (valueIndex > schema[\"enum\"].length) {\n throw new Error(\"Enum option \".concat(valueIndex, \" is not available\"));\n }\n var struct = schema[\"enum\"][valueIndex].struct;\n var key = Object.keys(struct)[0];\n return _a = {}, _a[key] = this.decode_value(struct[key]), _a;\n };\n BorshDeserializer.prototype.decode_array = function (schema) {\n var result = [];\n var len = schema.array.len ? schema.array.len : this.decode_integer('u32');\n for (var i = 0; i < len; ++i) {\n result.push(this.decode_value(schema.array.type));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_set = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Set();\n for (var i = 0; i < len; ++i) {\n result.add(this.decode_value(schema.set));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_map = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Map();\n for (var i = 0; i < len; ++i) {\n var key = this.decode_value(schema.map.key);\n var value = this.decode_value(schema.map.value);\n result.set(key, value);\n }\n return result;\n };\n BorshDeserializer.prototype.decode_struct = function (schema) {\n var result = {};\n for (var key in schema.struct) {\n result[key] = this.decode_value(schema.struct[key]);\n }\n return result;\n };\n return BorshDeserializer;\n}());\nexports.BorshDeserializer = BorshDeserializer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.deserialize = exports.serialize = void 0;\nvar serialize_js_1 = require(\"./serialize.js\");\nvar deserialize_js_1 = require(\"./deserialize.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nfunction serialize(schema, value, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var serializer = new serialize_js_1.BorshSerializer(validate);\n return serializer.encode(value, schema);\n}\nexports.serialize = serialize;\nfunction deserialize(schema, buffer, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var deserializer = new deserialize_js_1.BorshDeserializer(buffer);\n return deserializer.decode(schema);\n}\nexports.deserialize = deserialize;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.BorshSerializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nvar BorshSerializer = /** @class */ (function () {\n function BorshSerializer(checkTypes) {\n this.encoded = new buffer_js_1.EncodeBuffer();\n this.fieldPath = ['value'];\n this.checkTypes = checkTypes;\n }\n BorshSerializer.prototype.encode = function (value, schema) {\n this.encode_value(value, schema);\n return this.encoded.get_used_buffer();\n };\n BorshSerializer.prototype.encode_value = function (value, schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.encode_integer(value, schema);\n if (schema === 'string')\n return this.encode_string(value);\n if (schema === 'bool')\n return this.encode_boolean(value);\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.encode_option(value, schema);\n if ('enum' in schema)\n return this.encode_enum(value, schema);\n if ('array' in schema)\n return this.encode_array(value, schema);\n if ('set' in schema)\n return this.encode_set(value, schema);\n if ('map' in schema)\n return this.encode_map(value, schema);\n if ('struct' in schema)\n return this.encode_struct(value, schema);\n }\n };\n BorshSerializer.prototype.encode_integer = function (value, schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n this.checkTypes && utils.expect_type(value, 'number', this.fieldPath);\n this.encoded.store_value(value, schema);\n }\n else {\n this.checkTypes && utils.expect_bigint(value, this.fieldPath);\n this.encode_bigint(BigInt(value), size);\n }\n };\n BorshSerializer.prototype.encode_bigint = function (value, size) {\n var buffer_len = size / 8;\n var buffer = new Uint8Array(buffer_len);\n for (var i = 0; i < buffer_len; i++) {\n buffer[i] = Number(value & BigInt(0xff));\n value = value >> BigInt(8);\n }\n this.encoded.store_bytes(new Uint8Array(buffer));\n };\n BorshSerializer.prototype.encode_string = function (value) {\n this.checkTypes && utils.expect_type(value, 'string', this.fieldPath);\n var _value = value;\n // 4 bytes for length\n this.encoded.store_value(_value.length, 'u32');\n // string bytes\n for (var i = 0; i < _value.length; i++) {\n this.encoded.store_value(_value.charCodeAt(i), 'u8');\n }\n };\n BorshSerializer.prototype.encode_boolean = function (value) {\n this.checkTypes && utils.expect_type(value, 'boolean', this.fieldPath);\n this.encoded.store_value(value ? 1 : 0, 'u8');\n };\n BorshSerializer.prototype.encode_option = function (value, schema) {\n if (value === null || value === undefined) {\n this.encoded.store_value(0, 'u8');\n }\n else {\n this.encoded.store_value(1, 'u8');\n this.encode_value(value, schema.option);\n }\n };\n BorshSerializer.prototype.encode_enum = function (value, schema) {\n this.checkTypes && utils.expect_enum(value, this.fieldPath);\n var valueKey = Object.keys(value)[0];\n for (var i = 0; i < schema[\"enum\"].length; i++) {\n var valueSchema = schema[\"enum\"][i];\n if (valueKey === Object.keys(valueSchema.struct)[0]) {\n this.encoded.store_value(i, 'u8');\n return this.encode_struct(value, valueSchema);\n }\n }\n throw new Error(\"Enum key (\".concat(valueKey, \") not found in enum schema: \").concat(JSON.stringify(schema), \" at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_array = function (value, schema) {\n if (utils.isArrayLike(value))\n return this.encode_arraylike(value, schema);\n if (value instanceof ArrayBuffer)\n return this.encode_buffer(value, schema);\n throw new Error(\"Expected Array-like not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_arraylike = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.length, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.length, 'u32');\n }\n // array values\n for (var i = 0; i < value.length; i++) {\n this.encode_value(value[i], schema.array.type);\n }\n };\n BorshSerializer.prototype.encode_buffer = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.byteLength, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.byteLength, 'u32');\n }\n // array values\n this.encoded.store_bytes(new Uint8Array(value));\n };\n BorshSerializer.prototype.encode_set = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isSet = value instanceof Set;\n var values = isSet ? Array.from(value.values()) : Object.values(value);\n // 4 bytes for length\n this.encoded.store_value(values.length, 'u32');\n // set values\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value_1 = values_1[_i];\n this.encode_value(value_1, schema.set);\n }\n };\n BorshSerializer.prototype.encode_map = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isMap = value instanceof Map;\n var keys = isMap ? Array.from(value.keys()) : Object.keys(value);\n // 4 bytes for length\n this.encoded.store_value(keys.length, 'u32');\n // store key/values\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n this.encode_value(key, schema.map.key);\n this.encode_value(isMap ? value.get(key) : value[key], schema.map.value);\n }\n };\n BorshSerializer.prototype.encode_struct = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n for (var _i = 0, _a = Object.keys(schema.struct); _i < _a.length; _i++) {\n var key = _a[_i];\n this.fieldPath.push(key);\n this.encode_value(value[key], schema.struct[key]);\n this.fieldPath.pop();\n }\n };\n return BorshSerializer;\n}());\nexports.BorshSerializer = BorshSerializer;\n","\"use strict\";\nexports.__esModule = true;\nexports.integers = void 0;\nexports.integers = ['u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128', 'f32', 'f64'];\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.validate_schema = exports.ErrorSchema = exports.expect_enum = exports.expect_same_size = exports.expect_bigint = exports.expect_type = exports.isArrayLike = void 0;\nvar types_js_1 = require(\"./types.js\");\nfunction isArrayLike(value) {\n // source: https://stackoverflow.com/questions/24048547/checking-if-an-object-is-array-like\n return (Array.isArray(value) ||\n (!!value &&\n typeof value === 'object' &&\n 'length' in value &&\n typeof (value.length) === 'number' &&\n (value.length === 0 ||\n (value.length > 0 &&\n (value.length - 1) in value))));\n}\nexports.isArrayLike = isArrayLike;\nfunction expect_type(value, type, fieldPath) {\n if (typeof (value) !== type) {\n throw new Error(\"Expected \".concat(type, \" not \").concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_type = expect_type;\nfunction expect_bigint(value, fieldPath) {\n var basicType = ['number', 'string', 'bigint', 'boolean'].includes(typeof (value));\n var strObject = typeof (value) === 'object' && value !== null && 'toString' in value;\n if (!basicType && !strObject) {\n throw new Error(\"Expected bigint, number, boolean or string not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_bigint = expect_bigint;\nfunction expect_same_size(length, expected, fieldPath) {\n if (length !== expected) {\n throw new Error(\"Array length \".concat(length, \" does not match schema length \").concat(expected, \" at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_same_size = expect_same_size;\nfunction expect_enum(value, fieldPath) {\n if (typeof (value) !== 'object' || value === null) {\n throw new Error(\"Expected object not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_enum = expect_enum;\n// Validate Schema\nvar VALID_STRING_TYPES = types_js_1.integers.concat(['bool', 'string']);\nvar VALID_OBJECT_KEYS = ['option', 'enum', 'array', 'set', 'map', 'struct'];\nvar ErrorSchema = /** @class */ (function (_super) {\n __extends(ErrorSchema, _super);\n function ErrorSchema(schema, expected) {\n var message = \"Invalid schema: \".concat(JSON.stringify(schema), \" expected \").concat(expected);\n return _super.call(this, message) || this;\n }\n return ErrorSchema;\n}(Error));\nexports.ErrorSchema = ErrorSchema;\nfunction validate_schema(schema) {\n if (typeof (schema) === 'string' && VALID_STRING_TYPES.includes(schema)) {\n return;\n }\n if (schema && typeof (schema) === 'object') {\n var keys = Object.keys(schema);\n if (keys.length === 1 && VALID_OBJECT_KEYS.includes(keys[0])) {\n var key = keys[0];\n if (key === 'option')\n return validate_schema(schema[key]);\n if (key === 'enum')\n return validate_enum_schema(schema[key]);\n if (key === 'array')\n return validate_array_schema(schema[key]);\n if (key === 'set')\n return validate_schema(schema[key]);\n if (key === 'map')\n return validate_map_schema(schema[key]);\n if (key === 'struct')\n return validate_struct_schema(schema[key]);\n }\n }\n throw new ErrorSchema(schema, VALID_OBJECT_KEYS.join(', ') + ' or ' + VALID_STRING_TYPES.join(', '));\n}\nexports.validate_schema = validate_schema;\nfunction validate_enum_schema(schema) {\n if (!Array.isArray(schema))\n throw new ErrorSchema(schema, 'Array');\n for (var _i = 0, schema_1 = schema; _i < schema_1.length; _i++) {\n var sch = schema_1[_i];\n if (typeof sch !== 'object' || !('struct' in sch)) {\n throw new Error('Missing \"struct\" key in enum schema');\n }\n if (typeof sch.struct !== 'object' || Object.keys(sch.struct).length !== 1) {\n throw new Error('The \"struct\" in each enum must have a single key');\n }\n validate_schema({ struct: sch.struct });\n }\n}\nfunction validate_array_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, '{ type, len? }');\n if (schema.len && typeof schema.len !== 'number') {\n throw new Error(\"Invalid schema: \".concat(schema));\n }\n if ('type' in schema)\n return validate_schema(schema.type);\n throw new ErrorSchema(schema, '{ type, len? }');\n}\nfunction validate_map_schema(schema) {\n if (typeof schema === 'object' && 'key' in schema && 'value' in schema) {\n validate_schema(schema.key);\n validate_schema(schema.value);\n }\n else {\n throw new ErrorSchema(schema, '{ key, value }');\n }\n}\nfunction validate_struct_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, 'object');\n for (var key in schema) {\n validate_schema(schema[key]);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return accounts_1.Account; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return accounts_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return accounts_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return accounts_1.UrlAccountCreator; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.AccountMultisig = exports.Account2FA = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return accounts_1.Account2FA; } });\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return accounts_1.AccountMultisig; } });\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return accounts_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return accounts_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return accounts_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CONFIRM_METHODS; } });\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return accounts_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return accounts_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\n/**\n * Connect to NEAR using the provided configuration.\n *\n * {@link ConnectConfig#networkId} and {@link ConnectConfig#nodeUrl} are required.\n *\n * To sign transactions you can also pass: {@link ConnectConfig#keyStore}\n *\n * Both are passed they are prioritize in that order.\n *\n * @see {@link ConnectConfig}\n * @example\n * ```js\n * async function initNear() {\n * const near = await connect({\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org'\n * })\n * }\n * ```\n *\n * @module browserConnect\n */\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nfunction connect(config) {\n return __awaiter(this, void 0, void 0, function* () {\n return new near_1.Near(config);\n });\n}\nexports.connect = connect;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keyStores = void 0;\n/** @hidden @module */\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\n/** @hidden @module */\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return accounts_1.Connection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return accounts_1.Contract; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\n/** @hidden @module */\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar keystores_browser_1 = require(\"@near-js/keystores-browser\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return keystores_browser_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return keystores_1.InMemoryKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystores_1.KeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return keystores_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return wallet_account_1.Near; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FailoverRpcProvider = void 0;\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"FailoverRpcProvider\", { enumerable: true, get: function () { return providers_1.FailoverRpcProvider; } });\n","\"use strict\";\n/** @hidden @module */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.FailoverRpcProvider = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\nconst failover_rpc_provider_1 = require(\"./failover-rpc-provider\");\nObject.defineProperty(exports, \"FailoverRpcProvider\", { enumerable: true, get: function () { return failover_rpc_provider_1.FailoverRpcProvider; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.TypedError = exports.ErrorContext = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return providers_1.JsonRpcProvider; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = exports.Provider = exports.getTransactionLastResult = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return utils_1.getTransactionLastResult; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return providers_1.Provider; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return types_1.IdType; } });\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar signers_1 = require(\"@near-js/signers\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signers_1.InMemorySigner; } });\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signers_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transfer = exports.stake = exports.functionCallAccessKey = exports.functionCall = exports.fullAccessKey = exports.deployContract = exports.deleteKey = exports.deleteAccount = exports.createAccount = exports.addKey = exports.encodeTransaction = exports.encodeDelegateAction = exports.encodeSignedDelegate = exports.Transaction = exports.SignedTransaction = exports.Signature = exports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Transfer = exports.Stake = exports.FunctionCallPermission = exports.FunctionCall = exports.FullAccessPermission = exports.DeployContract = exports.DeleteKey = exports.DeleteAccount = exports.CreateAccount = exports.AddKey = exports.AccessKeyPermission = exports.AccessKey = exports.Action = exports.stringifyJsonOrBytes = void 0;\nvar transactions_1 = require(\"@near-js/transactions\");\nObject.defineProperty(exports, \"stringifyJsonOrBytes\", { enumerable: true, get: function () { return transactions_1.stringifyJsonOrBytes; } });\nObject.defineProperty(exports, \"Action\", { enumerable: true, get: function () { return transactions_1.Action; } });\nObject.defineProperty(exports, \"AccessKey\", { enumerable: true, get: function () { return transactions_1.AccessKey; } });\nObject.defineProperty(exports, \"AccessKeyPermission\", { enumerable: true, get: function () { return transactions_1.AccessKeyPermission; } });\nObject.defineProperty(exports, \"AddKey\", { enumerable: true, get: function () { return transactions_1.AddKey; } });\nObject.defineProperty(exports, \"CreateAccount\", { enumerable: true, get: function () { return transactions_1.CreateAccount; } });\nObject.defineProperty(exports, \"DeleteAccount\", { enumerable: true, get: function () { return transactions_1.DeleteAccount; } });\nObject.defineProperty(exports, \"DeleteKey\", { enumerable: true, get: function () { return transactions_1.DeleteKey; } });\nObject.defineProperty(exports, \"DeployContract\", { enumerable: true, get: function () { return transactions_1.DeployContract; } });\nObject.defineProperty(exports, \"FullAccessPermission\", { enumerable: true, get: function () { return transactions_1.FullAccessPermission; } });\nObject.defineProperty(exports, \"FunctionCall\", { enumerable: true, get: function () { return transactions_1.FunctionCall; } });\nObject.defineProperty(exports, \"FunctionCallPermission\", { enumerable: true, get: function () { return transactions_1.FunctionCallPermission; } });\nObject.defineProperty(exports, \"Stake\", { enumerable: true, get: function () { return transactions_1.Stake; } });\nObject.defineProperty(exports, \"Transfer\", { enumerable: true, get: function () { return transactions_1.Transfer; } });\nObject.defineProperty(exports, \"SCHEMA\", { enumerable: true, get: function () { return transactions_1.SCHEMA; } });\nObject.defineProperty(exports, \"createTransaction\", { enumerable: true, get: function () { return transactions_1.createTransaction; } });\nObject.defineProperty(exports, \"signTransaction\", { enumerable: true, get: function () { return transactions_1.signTransaction; } });\nObject.defineProperty(exports, \"Signature\", { enumerable: true, get: function () { return transactions_1.Signature; } });\nObject.defineProperty(exports, \"SignedTransaction\", { enumerable: true, get: function () { return transactions_1.SignedTransaction; } });\nObject.defineProperty(exports, \"Transaction\", { enumerable: true, get: function () { return transactions_1.Transaction; } });\nObject.defineProperty(exports, \"encodeSignedDelegate\", { enumerable: true, get: function () { return transactions_1.encodeSignedDelegate; } });\nObject.defineProperty(exports, \"encodeDelegateAction\", { enumerable: true, get: function () { return transactions_1.encodeDelegateAction; } });\nObject.defineProperty(exports, \"encodeTransaction\", { enumerable: true, get: function () { return transactions_1.encodeTransaction; } });\nconst transactions_2 = require(\"@near-js/transactions\");\nconst addKey = (publicKey, accessKey) => transactions_2.actionCreators.addKey(publicKey, accessKey);\nexports.addKey = addKey;\nconst createAccount = () => transactions_2.actionCreators.createAccount();\nexports.createAccount = createAccount;\nconst deleteAccount = (beneficiaryId) => transactions_2.actionCreators.deleteAccount(beneficiaryId);\nexports.deleteAccount = deleteAccount;\nconst deleteKey = (publicKey) => transactions_2.actionCreators.deleteKey(publicKey);\nexports.deleteKey = deleteKey;\nconst deployContract = (code) => transactions_2.actionCreators.deployContract(code);\nexports.deployContract = deployContract;\nconst fullAccessKey = () => transactions_2.actionCreators.fullAccessKey();\nexports.fullAccessKey = fullAccessKey;\nconst functionCall = (methodName, args, gas, deposit, stringify, jsContract) => transactions_2.actionCreators.functionCall(methodName, args, gas, deposit, stringify, jsContract);\nexports.functionCall = functionCall;\nconst functionCallAccessKey = (receiverId, methodNames, allowance) => transactions_2.actionCreators.functionCallAccessKey(receiverId, methodNames, allowance);\nexports.functionCallAccessKey = functionCallAccessKey;\nconst stake = (stake, publicKey) => transactions_2.actionCreators.stake(stake, publicKey);\nexports.stake = stake;\nconst transfer = (deposit) => transactions_2.actionCreators.transfer(deposit);\nexports.transfer = transfer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enum = exports.Assignable = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"Assignable\", { enumerable: true, get: function () { return types_1.Assignable; } });\n/** @hidden @module */\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = exports.TypedError = exports.PositionalArgsError = exports.ErrorContext = exports.ArgumentTypeError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return accounts_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return accounts_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return accounts_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return accounts_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ArgumentTypeError\", { enumerable: true, get: function () { return types_1.ArgumentTypeError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"PositionalArgsError\", { enumerable: true, get: function () { return types_1.PositionalArgsError; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return utils_1.logWarning; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION_EXP = exports.NEAR_NOMINATION = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"NEAR_NOMINATION\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION; } });\nObject.defineProperty(exports, \"NEAR_NOMINATION_EXP\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION_EXP; } });\nObject.defineProperty(exports, \"formatNearAmount\", { enumerable: true, get: function () { return utils_1.formatNearAmount; } });\nObject.defineProperty(exports, \"parseNearAmount\", { enumerable: true, get: function () { return utils_1.parseNearAmount; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = exports.logWarning = exports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nconst logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyType = exports.KeyPairEd25519 = exports.KeyPair = void 0;\nvar crypto_1 = require(\"@near-js/crypto\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return crypto_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return crypto_1.KeyPairEd25519; } });\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return crypto_1.KeyType; } });\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return crypto_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return utils_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServerError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return utils_1.parseRpcError; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return utils_1.parseResultError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return utils_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return utils_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return utils_1.ServerError; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base_decode = exports.base_encode = exports.deserialize = exports.serialize = void 0;\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return utils_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return utils_1.baseDecode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return providers_1.fetchJson; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findSeatPrice = exports.diffEpochValidators = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"diffEpochValidators\", { enumerable: true, get: function () { return utils_1.diffEpochValidators; } });\nObject.defineProperty(exports, \"findSeatPrice\", { enumerable: true, get: function () { return utils_1.findSeatPrice; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nexports.__esModule = true;\nexports.DecodeBuffer = exports.EncodeBuffer = void 0;\nvar EncodeBuffer = /** @class */ (function () {\n function EncodeBuffer() {\n this.offset = 0;\n this.buffer_size = 256;\n this.buffer = new ArrayBuffer(this.buffer_size);\n this.view = new DataView(this.buffer);\n }\n EncodeBuffer.prototype.resize_if_necessary = function (needed_space) {\n if (this.buffer_size - this.offset < needed_space) {\n this.buffer_size = Math.max(this.buffer_size * 2, this.buffer_size + needed_space);\n var new_buffer = new ArrayBuffer(this.buffer_size);\n new Uint8Array(new_buffer).set(new Uint8Array(this.buffer));\n this.buffer = new_buffer;\n this.view = new DataView(new_buffer);\n }\n };\n EncodeBuffer.prototype.get_used_buffer = function () {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n };\n EncodeBuffer.prototype.store_value = function (value, type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.resize_if_necessary(size);\n var toCall = type[0] === 'f' ? \"setFloat\".concat(bSize) : type[0] === 'i' ? \"setInt\".concat(bSize) : \"setUint\".concat(bSize);\n this.view[toCall](this.offset, value, true);\n this.offset += size;\n };\n EncodeBuffer.prototype.store_bytes = function (from) {\n this.resize_if_necessary(from.length);\n new Uint8Array(this.buffer).set(new Uint8Array(from), this.offset);\n this.offset += from.length;\n };\n return EncodeBuffer;\n}());\nexports.EncodeBuffer = EncodeBuffer;\nvar DecodeBuffer = /** @class */ (function () {\n function DecodeBuffer(buf) {\n this.offset = 0;\n this.buffer_size = buf.length;\n this.buffer = new ArrayBuffer(buf.length);\n new Uint8Array(this.buffer).set(buf);\n this.view = new DataView(this.buffer);\n }\n DecodeBuffer.prototype.assert_enough_buffer = function (size) {\n if (this.offset + size > this.buffer.byteLength) {\n throw new Error('Error in schema, the buffer is smaller than expected');\n }\n };\n DecodeBuffer.prototype.consume_value = function (type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.assert_enough_buffer(size);\n var toCall = type[0] === 'f' ? \"getFloat\".concat(bSize) : type[0] === 'i' ? \"getInt\".concat(bSize) : \"getUint\".concat(bSize);\n var ret = this.view[toCall](this.offset, true);\n this.offset += size;\n return ret;\n };\n DecodeBuffer.prototype.consume_bytes = function (size) {\n this.assert_enough_buffer(size);\n var ret = this.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return ret;\n };\n return DecodeBuffer;\n}());\nexports.DecodeBuffer = DecodeBuffer;\n","\"use strict\";\nexports.__esModule = true;\nexports.BorshDeserializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar BorshDeserializer = /** @class */ (function () {\n function BorshDeserializer(bufferArray) {\n this.buffer = new buffer_js_1.DecodeBuffer(bufferArray);\n }\n BorshDeserializer.prototype.decode = function (schema) {\n return this.decode_value(schema);\n };\n BorshDeserializer.prototype.decode_value = function (schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.decode_integer(schema);\n if (schema === 'string')\n return this.decode_string();\n if (schema === 'bool')\n return this.decode_boolean();\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.decode_option(schema);\n if ('enum' in schema)\n return this.decode_enum(schema);\n if ('array' in schema)\n return this.decode_array(schema);\n if ('set' in schema)\n return this.decode_set(schema);\n if ('map' in schema)\n return this.decode_map(schema);\n if ('struct' in schema)\n return this.decode_struct(schema);\n }\n throw new Error(\"Unsupported type: \".concat(schema));\n };\n BorshDeserializer.prototype.decode_integer = function (schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n return this.buffer.consume_value(schema);\n }\n return this.decode_bigint(size, schema.startsWith('i'));\n };\n BorshDeserializer.prototype.decode_bigint = function (size, signed) {\n if (signed === void 0) { signed = false; }\n var buffer_len = size / 8;\n var buffer = new Uint8Array(this.buffer.consume_bytes(buffer_len));\n var bits = buffer.reduceRight(function (r, x) { return r + x.toString(16).padStart(2, '0'); }, '');\n if (signed && buffer[buffer_len - 1]) {\n return BigInt.asIntN(size, BigInt(\"0x\".concat(bits)));\n }\n return BigInt(\"0x\".concat(bits));\n };\n BorshDeserializer.prototype.decode_string = function () {\n var len = this.decode_integer('u32');\n var buffer = new Uint8Array(this.buffer.consume_bytes(len));\n return String.fromCharCode.apply(null, buffer);\n };\n BorshDeserializer.prototype.decode_boolean = function () {\n return this.buffer.consume_value('u8') > 0;\n };\n BorshDeserializer.prototype.decode_option = function (schema) {\n var option = this.buffer.consume_value('u8');\n if (option === 1) {\n return this.decode_value(schema.option);\n }\n if (option !== 0) {\n throw new Error(\"Invalid option \".concat(option));\n }\n return null;\n };\n BorshDeserializer.prototype.decode_enum = function (schema) {\n var _a;\n var valueIndex = this.buffer.consume_value('u8');\n if (valueIndex > schema[\"enum\"].length) {\n throw new Error(\"Enum option \".concat(valueIndex, \" is not available\"));\n }\n var struct = schema[\"enum\"][valueIndex].struct;\n var key = Object.keys(struct)[0];\n return _a = {}, _a[key] = this.decode_value(struct[key]), _a;\n };\n BorshDeserializer.prototype.decode_array = function (schema) {\n var result = [];\n var len = schema.array.len ? schema.array.len : this.decode_integer('u32');\n for (var i = 0; i < len; ++i) {\n result.push(this.decode_value(schema.array.type));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_set = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Set();\n for (var i = 0; i < len; ++i) {\n result.add(this.decode_value(schema.set));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_map = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Map();\n for (var i = 0; i < len; ++i) {\n var key = this.decode_value(schema.map.key);\n var value = this.decode_value(schema.map.value);\n result.set(key, value);\n }\n return result;\n };\n BorshDeserializer.prototype.decode_struct = function (schema) {\n var result = {};\n for (var key in schema.struct) {\n result[key] = this.decode_value(schema.struct[key]);\n }\n return result;\n };\n return BorshDeserializer;\n}());\nexports.BorshDeserializer = BorshDeserializer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.deserialize = exports.serialize = void 0;\nvar serialize_js_1 = require(\"./serialize.js\");\nvar deserialize_js_1 = require(\"./deserialize.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nfunction serialize(schema, value, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var serializer = new serialize_js_1.BorshSerializer(validate);\n return serializer.encode(value, schema);\n}\nexports.serialize = serialize;\nfunction deserialize(schema, buffer, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var deserializer = new deserialize_js_1.BorshDeserializer(buffer);\n return deserializer.decode(schema);\n}\nexports.deserialize = deserialize;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.BorshSerializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nvar BorshSerializer = /** @class */ (function () {\n function BorshSerializer(checkTypes) {\n this.encoded = new buffer_js_1.EncodeBuffer();\n this.fieldPath = ['value'];\n this.checkTypes = checkTypes;\n }\n BorshSerializer.prototype.encode = function (value, schema) {\n this.encode_value(value, schema);\n return this.encoded.get_used_buffer();\n };\n BorshSerializer.prototype.encode_value = function (value, schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.encode_integer(value, schema);\n if (schema === 'string')\n return this.encode_string(value);\n if (schema === 'bool')\n return this.encode_boolean(value);\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.encode_option(value, schema);\n if ('enum' in schema)\n return this.encode_enum(value, schema);\n if ('array' in schema)\n return this.encode_array(value, schema);\n if ('set' in schema)\n return this.encode_set(value, schema);\n if ('map' in schema)\n return this.encode_map(value, schema);\n if ('struct' in schema)\n return this.encode_struct(value, schema);\n }\n };\n BorshSerializer.prototype.encode_integer = function (value, schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n this.checkTypes && utils.expect_type(value, 'number', this.fieldPath);\n this.encoded.store_value(value, schema);\n }\n else {\n this.checkTypes && utils.expect_bigint(value, this.fieldPath);\n this.encode_bigint(BigInt(value), size);\n }\n };\n BorshSerializer.prototype.encode_bigint = function (value, size) {\n var buffer_len = size / 8;\n var buffer = new Uint8Array(buffer_len);\n for (var i = 0; i < buffer_len; i++) {\n buffer[i] = Number(value & BigInt(0xff));\n value = value >> BigInt(8);\n }\n this.encoded.store_bytes(new Uint8Array(buffer));\n };\n BorshSerializer.prototype.encode_string = function (value) {\n this.checkTypes && utils.expect_type(value, 'string', this.fieldPath);\n var _value = value;\n // 4 bytes for length\n this.encoded.store_value(_value.length, 'u32');\n // string bytes\n for (var i = 0; i < _value.length; i++) {\n this.encoded.store_value(_value.charCodeAt(i), 'u8');\n }\n };\n BorshSerializer.prototype.encode_boolean = function (value) {\n this.checkTypes && utils.expect_type(value, 'boolean', this.fieldPath);\n this.encoded.store_value(value ? 1 : 0, 'u8');\n };\n BorshSerializer.prototype.encode_option = function (value, schema) {\n if (value === null || value === undefined) {\n this.encoded.store_value(0, 'u8');\n }\n else {\n this.encoded.store_value(1, 'u8');\n this.encode_value(value, schema.option);\n }\n };\n BorshSerializer.prototype.encode_enum = function (value, schema) {\n this.checkTypes && utils.expect_enum(value, this.fieldPath);\n var valueKey = Object.keys(value)[0];\n for (var i = 0; i < schema[\"enum\"].length; i++) {\n var valueSchema = schema[\"enum\"][i];\n if (valueKey === Object.keys(valueSchema.struct)[0]) {\n this.encoded.store_value(i, 'u8');\n return this.encode_struct(value, valueSchema);\n }\n }\n throw new Error(\"Enum key (\".concat(valueKey, \") not found in enum schema: \").concat(JSON.stringify(schema), \" at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_array = function (value, schema) {\n if (utils.isArrayLike(value))\n return this.encode_arraylike(value, schema);\n if (value instanceof ArrayBuffer)\n return this.encode_buffer(value, schema);\n throw new Error(\"Expected Array-like not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_arraylike = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.length, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.length, 'u32');\n }\n // array values\n for (var i = 0; i < value.length; i++) {\n this.encode_value(value[i], schema.array.type);\n }\n };\n BorshSerializer.prototype.encode_buffer = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.byteLength, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.byteLength, 'u32');\n }\n // array values\n this.encoded.store_bytes(new Uint8Array(value));\n };\n BorshSerializer.prototype.encode_set = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isSet = value instanceof Set;\n var values = isSet ? Array.from(value.values()) : Object.values(value);\n // 4 bytes for length\n this.encoded.store_value(values.length, 'u32');\n // set values\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value_1 = values_1[_i];\n this.encode_value(value_1, schema.set);\n }\n };\n BorshSerializer.prototype.encode_map = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isMap = value instanceof Map;\n var keys = isMap ? Array.from(value.keys()) : Object.keys(value);\n // 4 bytes for length\n this.encoded.store_value(keys.length, 'u32');\n // store key/values\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n this.encode_value(key, schema.map.key);\n this.encode_value(isMap ? value.get(key) : value[key], schema.map.value);\n }\n };\n BorshSerializer.prototype.encode_struct = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n for (var _i = 0, _a = Object.keys(schema.struct); _i < _a.length; _i++) {\n var key = _a[_i];\n this.fieldPath.push(key);\n this.encode_value(value[key], schema.struct[key]);\n this.fieldPath.pop();\n }\n };\n return BorshSerializer;\n}());\nexports.BorshSerializer = BorshSerializer;\n","\"use strict\";\nexports.__esModule = true;\nexports.integers = void 0;\nexports.integers = ['u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128', 'f32', 'f64'];\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.validate_schema = exports.ErrorSchema = exports.expect_enum = exports.expect_same_size = exports.expect_bigint = exports.expect_type = exports.isArrayLike = void 0;\nvar types_js_1 = require(\"./types.js\");\nfunction isArrayLike(value) {\n // source: https://stackoverflow.com/questions/24048547/checking-if-an-object-is-array-like\n return (Array.isArray(value) ||\n (!!value &&\n typeof value === 'object' &&\n 'length' in value &&\n typeof (value.length) === 'number' &&\n (value.length === 0 ||\n (value.length > 0 &&\n (value.length - 1) in value))));\n}\nexports.isArrayLike = isArrayLike;\nfunction expect_type(value, type, fieldPath) {\n if (typeof (value) !== type) {\n throw new Error(\"Expected \".concat(type, \" not \").concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_type = expect_type;\nfunction expect_bigint(value, fieldPath) {\n var basicType = ['number', 'string', 'bigint', 'boolean'].includes(typeof (value));\n var strObject = typeof (value) === 'object' && value !== null && 'toString' in value;\n if (!basicType && !strObject) {\n throw new Error(\"Expected bigint, number, boolean or string not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_bigint = expect_bigint;\nfunction expect_same_size(length, expected, fieldPath) {\n if (length !== expected) {\n throw new Error(\"Array length \".concat(length, \" does not match schema length \").concat(expected, \" at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_same_size = expect_same_size;\nfunction expect_enum(value, fieldPath) {\n if (typeof (value) !== 'object' || value === null) {\n throw new Error(\"Expected object not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_enum = expect_enum;\n// Validate Schema\nvar VALID_STRING_TYPES = types_js_1.integers.concat(['bool', 'string']);\nvar VALID_OBJECT_KEYS = ['option', 'enum', 'array', 'set', 'map', 'struct'];\nvar ErrorSchema = /** @class */ (function (_super) {\n __extends(ErrorSchema, _super);\n function ErrorSchema(schema, expected) {\n var message = \"Invalid schema: \".concat(JSON.stringify(schema), \" expected \").concat(expected);\n return _super.call(this, message) || this;\n }\n return ErrorSchema;\n}(Error));\nexports.ErrorSchema = ErrorSchema;\nfunction validate_schema(schema) {\n if (typeof (schema) === 'string' && VALID_STRING_TYPES.includes(schema)) {\n return;\n }\n if (schema && typeof (schema) === 'object') {\n var keys = Object.keys(schema);\n if (keys.length === 1 && VALID_OBJECT_KEYS.includes(keys[0])) {\n var key = keys[0];\n if (key === 'option')\n return validate_schema(schema[key]);\n if (key === 'enum')\n return validate_enum_schema(schema[key]);\n if (key === 'array')\n return validate_array_schema(schema[key]);\n if (key === 'set')\n return validate_schema(schema[key]);\n if (key === 'map')\n return validate_map_schema(schema[key]);\n if (key === 'struct')\n return validate_struct_schema(schema[key]);\n }\n }\n throw new ErrorSchema(schema, VALID_OBJECT_KEYS.join(', ') + ' or ' + VALID_STRING_TYPES.join(', '));\n}\nexports.validate_schema = validate_schema;\nfunction validate_enum_schema(schema) {\n if (!Array.isArray(schema))\n throw new ErrorSchema(schema, 'Array');\n for (var _i = 0, schema_1 = schema; _i < schema_1.length; _i++) {\n var sch = schema_1[_i];\n if (typeof sch !== 'object' || !('struct' in sch)) {\n throw new Error('Missing \"struct\" key in enum schema');\n }\n if (typeof sch.struct !== 'object' || Object.keys(sch.struct).length !== 1) {\n throw new Error('The \"struct\" in each enum must have a single key');\n }\n validate_schema({ struct: sch.struct });\n }\n}\nfunction validate_array_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, '{ type, len? }');\n if (schema.len && typeof schema.len !== 'number') {\n throw new Error(\"Invalid schema: \".concat(schema));\n }\n if ('type' in schema)\n return validate_schema(schema.type);\n throw new ErrorSchema(schema, '{ type, len? }');\n}\nfunction validate_map_schema(schema) {\n if (typeof schema === 'object' && 'key' in schema && 'value' in schema) {\n validate_schema(schema.key);\n validate_schema(schema.value);\n }\n else {\n throw new ErrorSchema(schema, '{ key, value }');\n }\n}\nfunction validate_struct_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, 'object');\n for (var key in schema) {\n validate_schema(schema[key]);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return accounts_1.Account; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return accounts_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return accounts_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return accounts_1.UrlAccountCreator; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.AccountMultisig = exports.Account2FA = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return accounts_1.Account2FA; } });\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return accounts_1.AccountMultisig; } });\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return accounts_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return accounts_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return accounts_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CONFIRM_METHODS; } });\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return accounts_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return accounts_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\n/**\n * Connect to NEAR using the provided configuration.\n *\n * {@link ConnectConfig#networkId} and {@link ConnectConfig#nodeUrl} are required.\n *\n * To sign transactions you can also pass: {@link ConnectConfig#keyStore}\n *\n * Both are passed they are prioritize in that order.\n *\n * @see {@link ConnectConfig}\n * @example\n * ```js\n * async function initNear() {\n * const near = await connect({\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org'\n * })\n * }\n * ```\n *\n * @module browserConnect\n */\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nfunction connect(config) {\n return __awaiter(this, void 0, void 0, function* () {\n return new near_1.Near(config);\n });\n}\nexports.connect = connect;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keyStores = void 0;\n/** @hidden @module */\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\n/** @hidden @module */\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return accounts_1.Connection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return accounts_1.Contract; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\n/** @hidden @module */\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar keystores_browser_1 = require(\"@near-js/keystores-browser\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return keystores_browser_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return keystores_1.InMemoryKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystores_1.KeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return keystores_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return wallet_account_1.Near; } });\n","\"use strict\";\n/** @hidden @module */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.TypedError = exports.ErrorContext = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return providers_1.JsonRpcProvider; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = exports.Provider = exports.getTransactionLastResult = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return utils_1.getTransactionLastResult; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return providers_1.Provider; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return types_1.IdType; } });\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar signers_1 = require(\"@near-js/signers\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signers_1.InMemorySigner; } });\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signers_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transfer = exports.stake = exports.functionCallAccessKey = exports.functionCall = exports.fullAccessKey = exports.deployContract = exports.deleteKey = exports.deleteAccount = exports.createAccount = exports.addKey = exports.encodeDelegateAction = exports.encodeSignedDelegate = exports.Transaction = exports.SignedTransaction = exports.Signature = exports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Transfer = exports.Stake = exports.FunctionCallPermission = exports.FunctionCall = exports.FullAccessPermission = exports.DeployContract = exports.DeleteKey = exports.DeleteAccount = exports.CreateAccount = exports.AddKey = exports.AccessKeyPermission = exports.AccessKey = exports.Action = exports.stringifyJsonOrBytes = void 0;\nvar transactions_1 = require(\"@near-js/transactions\");\nObject.defineProperty(exports, \"stringifyJsonOrBytes\", { enumerable: true, get: function () { return transactions_1.stringifyJsonOrBytes; } });\nObject.defineProperty(exports, \"Action\", { enumerable: true, get: function () { return transactions_1.Action; } });\nObject.defineProperty(exports, \"AccessKey\", { enumerable: true, get: function () { return transactions_1.AccessKey; } });\nObject.defineProperty(exports, \"AccessKeyPermission\", { enumerable: true, get: function () { return transactions_1.AccessKeyPermission; } });\nObject.defineProperty(exports, \"AddKey\", { enumerable: true, get: function () { return transactions_1.AddKey; } });\nObject.defineProperty(exports, \"CreateAccount\", { enumerable: true, get: function () { return transactions_1.CreateAccount; } });\nObject.defineProperty(exports, \"DeleteAccount\", { enumerable: true, get: function () { return transactions_1.DeleteAccount; } });\nObject.defineProperty(exports, \"DeleteKey\", { enumerable: true, get: function () { return transactions_1.DeleteKey; } });\nObject.defineProperty(exports, \"DeployContract\", { enumerable: true, get: function () { return transactions_1.DeployContract; } });\nObject.defineProperty(exports, \"FullAccessPermission\", { enumerable: true, get: function () { return transactions_1.FullAccessPermission; } });\nObject.defineProperty(exports, \"FunctionCall\", { enumerable: true, get: function () { return transactions_1.FunctionCall; } });\nObject.defineProperty(exports, \"FunctionCallPermission\", { enumerable: true, get: function () { return transactions_1.FunctionCallPermission; } });\nObject.defineProperty(exports, \"Stake\", { enumerable: true, get: function () { return transactions_1.Stake; } });\nObject.defineProperty(exports, \"Transfer\", { enumerable: true, get: function () { return transactions_1.Transfer; } });\nObject.defineProperty(exports, \"SCHEMA\", { enumerable: true, get: function () { return transactions_1.SCHEMA; } });\nObject.defineProperty(exports, \"createTransaction\", { enumerable: true, get: function () { return transactions_1.createTransaction; } });\nObject.defineProperty(exports, \"signTransaction\", { enumerable: true, get: function () { return transactions_1.signTransaction; } });\nObject.defineProperty(exports, \"Signature\", { enumerable: true, get: function () { return transactions_1.Signature; } });\nObject.defineProperty(exports, \"SignedTransaction\", { enumerable: true, get: function () { return transactions_1.SignedTransaction; } });\nObject.defineProperty(exports, \"Transaction\", { enumerable: true, get: function () { return transactions_1.Transaction; } });\nObject.defineProperty(exports, \"encodeSignedDelegate\", { enumerable: true, get: function () { return transactions_1.encodeSignedDelegate; } });\nObject.defineProperty(exports, \"encodeDelegateAction\", { enumerable: true, get: function () { return transactions_1.encodeDelegateAction; } });\nconst transactions_2 = require(\"@near-js/transactions\");\nconst addKey = (publicKey, accessKey) => transactions_2.actionCreators.addKey(publicKey, accessKey);\nexports.addKey = addKey;\nconst createAccount = () => transactions_2.actionCreators.createAccount();\nexports.createAccount = createAccount;\nconst deleteAccount = (beneficiaryId) => transactions_2.actionCreators.deleteAccount(beneficiaryId);\nexports.deleteAccount = deleteAccount;\nconst deleteKey = (publicKey) => transactions_2.actionCreators.deleteKey(publicKey);\nexports.deleteKey = deleteKey;\nconst deployContract = (code) => transactions_2.actionCreators.deployContract(code);\nexports.deployContract = deployContract;\nconst fullAccessKey = () => transactions_2.actionCreators.fullAccessKey();\nexports.fullAccessKey = fullAccessKey;\nconst functionCall = (methodName, args, gas, deposit, stringify, jsContract) => transactions_2.actionCreators.functionCall(methodName, args, gas, deposit, stringify, jsContract);\nexports.functionCall = functionCall;\nconst functionCallAccessKey = (receiverId, methodNames, allowance) => transactions_2.actionCreators.functionCallAccessKey(receiverId, methodNames, allowance);\nexports.functionCallAccessKey = functionCallAccessKey;\nconst stake = (stake, publicKey) => transactions_2.actionCreators.stake(stake, publicKey);\nexports.stake = stake;\nconst transfer = (deposit) => transactions_2.actionCreators.transfer(deposit);\nexports.transfer = transfer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enum = exports.Assignable = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"Assignable\", { enumerable: true, get: function () { return types_1.Assignable; } });\n/** @hidden @module */\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = exports.TypedError = exports.PositionalArgsError = exports.ErrorContext = exports.ArgumentTypeError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return accounts_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return accounts_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return accounts_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return accounts_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ArgumentTypeError\", { enumerable: true, get: function () { return types_1.ArgumentTypeError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"PositionalArgsError\", { enumerable: true, get: function () { return types_1.PositionalArgsError; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return utils_1.logWarning; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION_EXP = exports.NEAR_NOMINATION = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"NEAR_NOMINATION\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION; } });\nObject.defineProperty(exports, \"NEAR_NOMINATION_EXP\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION_EXP; } });\nObject.defineProperty(exports, \"formatNearAmount\", { enumerable: true, get: function () { return utils_1.formatNearAmount; } });\nObject.defineProperty(exports, \"parseNearAmount\", { enumerable: true, get: function () { return utils_1.parseNearAmount; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = exports.logWarning = exports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nconst logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyType = exports.KeyPairEd25519 = exports.KeyPair = void 0;\nvar crypto_1 = require(\"@near-js/crypto\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return crypto_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return crypto_1.KeyPairEd25519; } });\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return crypto_1.KeyType; } });\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return crypto_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return utils_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServerError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return utils_1.parseRpcError; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return utils_1.parseResultError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return utils_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return utils_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return utils_1.ServerError; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base_decode = exports.base_encode = exports.deserialize = exports.serialize = void 0;\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return utils_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return utils_1.baseDecode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return providers_1.fetchJson; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findSeatPrice = exports.diffEpochValidators = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"diffEpochValidators\", { enumerable: true, get: function () { return utils_1.diffEpochValidators; } });\nObject.defineProperty(exports, \"findSeatPrice\", { enumerable: true, get: function () { return utils_1.findSeatPrice; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey, stake, transfer, } = transactions_1.actionCreators;\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\nfunction bytesJsonStringify(input) {\n return Buffer.from(JSON.stringify(input));\n}\n/**\n * This class provides common account related RPC calls including signing transactions with a {@link \"@near-js/crypto\".key_pair.KeyPair | KeyPair}.\n */\nclass Account {\n constructor(connection, accountId) {\n /** @hidden */\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n /**\n * Returns basic NEAR account information via the `view_account` RPC query method\n * @see [https://docs.near.org/api/rpc/contracts#view-account](https://docs.near.org/api/rpc/contracts#view-account)\n */\n state() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.connection.provider.query({\n request_type: 'view_account',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n });\n }\n /**\n * Create a signed transaction which can be broadcast to the network\n * @param receiverId NEAR account receiving the transaction\n * @param actions list of actions to perform as part of the transaction\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n */\n signTransaction(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeyInfo = yield this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new types_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair exists for this account`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = accessKey.nonce.add(new bn_js_1.default(1));\n return yield (0, transactions_1.signTransaction)(receiverId, nonce, actions, (0, utils_1.baseDecode)(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n });\n }\n /**\n * Sign a transaction to perform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider }\n *\n * @param options The options for signing and sending the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be performed in the transaction.\n * @param options.returnError Whether to return an error if the transaction fails.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions, returnError }) {\n return __awaiter(this, void 0, void 0, function* () {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = yield (0, providers_1.exponentialBackoff)(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n [txHash, signedTx] = yield this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return yield this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n if (error.type === 'Expired') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} due to expired block hash`);\n return null;\n }\n error.context = new types_1.ErrorContext((0, utils_1.baseEncode)(txHash));\n throw error;\n }\n }));\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new types_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n (0, utils_1.printTxOutcomeLogsAndFailures)({ contractId: signedTx.transaction.receiverId, outcome: result });\n // Should be falsy if result.status.Failure is null\n if (!returnError && typeof result.status === 'object' && typeof result.status.Failure === 'object' && result.status.Failure !== null) {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new types_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw (0, utils_1.parseResultError)(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n });\n }\n /**\n * Finds the {@link AccessKeyView} associated with the accounts {@link PublicKey} stored in the {@link \"@near-js/keystores\".keystore.KeyStore | Keystore}.\n *\n * @todo Find matching access key based on transaction (i.e. receiverId and actions)\n *\n * @param receiverId currently unused (see todo)\n * @param actions currently unused (see todo)\n * @returns `{ publicKey PublicKey; accessKey: AccessKeyView }`\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n findAccessKey(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n throw new types_1.TypedError(`no matching key pair found in ${this.connection.signer}`, 'PublicKeyNotFound');\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const rawAccessKey = yield this.connection.provider.query({\n request_type: 'view_access_key',\n account_id: this.accountId,\n public_key: publicKey.toString(),\n finality: 'optimistic'\n });\n // store nonce as BN to preserve precision on big number\n const accessKey = Object.assign(Object.assign({}, rawAccessKey), { nonce: new bn_js_1.default(rawAccessKey.nonce) });\n // this function can be called multiple times and retrieve the same access key\n // this checks to see if the access key was already retrieved and cached while\n // the above network call was in flight. To keep nonce values in line, we return\n // the cached access key.\n if (this.accessKeyByPublicKeyCache[publicKey.toString()]) {\n return { publicKey, accessKey: this.accessKeyByPublicKeyCache[publicKey.toString()] };\n }\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n });\n }\n /**\n * Create a new account and deploy a contract to it\n *\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add to the created contract account\n * @param data The compiled contract code\n * @param amount of NEAR to transfer to the created contract account. Transfer enough to pay for storage https://docs.near.org/docs/concepts/storage-staking\n */\n createAndDeployContract(contractId, publicKey, data, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n yield this.signAndSendTransaction({\n receiverId: contractId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey), deployContract(data)]\n });\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n });\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n */\n sendMoney(receiverId, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId,\n actions: [transfer(amount)]\n });\n });\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n */\n createAccount(newAccountId, publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n return this.signAndSendTransaction({\n receiverId: newAccountId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n */\n deleteAccount(beneficiaryId) {\n return __awaiter(this, void 0, void 0, function* () {\n utils_1.Logger.log('Deleting an account does not automatically transfer NFTs and FTs to the beneficiary address. Ensure to transfer assets before deleting.');\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteAccount(beneficiaryId)]\n });\n });\n }\n /**\n * @param data The compiled contract code\n */\n deployContract(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deployContract(data)]\n });\n });\n }\n /** @hidden */\n encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n }\n /**\n * Execute a function call.\n * @param options The options for the function call.\n * @param options.contractId The NEAR account ID of the smart contract.\n * @param options.methodName The name of the method to be called on the smart contract.\n * @param options.args The arguments to be passed to the method.\n * @param options.gas The maximum amount of gas to be used for the function call.\n * @param options.attachedDeposit The amount of NEAR tokens to be attached to the function call.\n * @param options.walletMeta Metadata for wallet integration.\n * @param options.walletCallbackUrl The callback URL for wallet integration.\n * @param options.stringify A function to convert input arguments into bytes array\n * @param options.jsContract Whether the contract is from JS SDK, automatically encodes args from JS SDK to binary.\n * @returns {Promise} A promise that resolves to the final execution outcome of the function call.\n */\n functionCall({ contractId, methodName, args = {}, gas = utils_1.DEFAULT_FUNCTION_CALL_GAS, attachedDeposit, walletMeta, walletCallbackUrl, stringify, jsContract }) {\n return __awaiter(this, void 0, void 0, function* () {\n this.validateArgs(args);\n let functionCallArgs;\n if (jsContract) {\n const encodedArgs = this.encodeJSContractArgs(contractId, methodName, JSON.stringify(args));\n functionCallArgs = ['call_js_contract', encodedArgs, gas, attachedDeposit, null, true];\n }\n else {\n const stringifyArg = stringify === undefined ? transactions_1.stringifyJsonOrBytes : stringify;\n functionCallArgs = [methodName, args, gas, attachedDeposit, stringifyArg, false];\n }\n return this.signAndSendTransaction({\n receiverId: jsContract ? this.connection.jsvmAccountId : contractId,\n // eslint-disable-next-line prefer-spread\n actions: [functionCall.apply(void 0, functionCallArgs)],\n walletMeta,\n walletCallbackUrl\n });\n });\n }\n /**\n * @see [https://docs.near.org/concepts/basics/accounts/access-keys](https://docs.near.org/concepts/basics/accounts/access-keys)\n * @todo expand this API to support more options.\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n */\n addKey(publicKey, contractId, methodNames, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = fullAccessKey();\n }\n else {\n accessKey = functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise}\n */\n deleteKey(publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteKey(crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * @see [https://near-nodes.io/validator/staking-and-delegation](https://near-nodes.io/validator/staking-and-delegation)\n *\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n */\n stake(publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [stake(amount, crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * Compose and sign a SignedDelegate action to be executed in a transaction on behalf of this Account instance\n *\n * @param options Options for the transaction.\n * @param options.actions Actions to be included in the meta transaction\n * @param options.blockHeightTtl Number of blocks past the current block height for which the SignedDelegate action may be included in a meta transaction\n * @param options.receiverId Receiver account of the meta transaction\n */\n signedDelegate({ actions, blockHeightTtl, receiverId, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { provider, signer } = this.connection;\n const { header } = yield provider.block({ finality: 'final' });\n const { accessKey, publicKey } = yield this.findAccessKey(null, null);\n const delegateAction = (0, transactions_1.buildDelegateAction)({\n actions,\n maxBlockHeight: new bn_js_1.default(header.height).add(new bn_js_1.default(blockHeightTtl)),\n nonce: new bn_js_1.default(accessKey.nonce).add(new bn_js_1.default(1)),\n publicKey,\n receiverId,\n senderId: this.accountId,\n });\n const { signedDelegateAction } = yield (0, transactions_1.signDelegateAction)({\n delegateAction,\n signer: {\n sign: (message) => __awaiter(this, void 0, void 0, function* () {\n const { signature } = yield signer.signMessage(message, delegateAction.senderId, this.connection.networkId);\n return signature;\n }),\n }\n });\n return signedDelegateAction;\n });\n }\n /** @hidden */\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n }\n /**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\n viewFunction({ contractId, methodName, args = {}, parse = parseJsonFromRawResponse, stringify = bytesJsonStringify, jsContract = false, blockQuery = { finality: 'optimistic' } }) {\n return __awaiter(this, void 0, void 0, function* () {\n let encodedArgs;\n this.validateArgs(args);\n if (jsContract) {\n encodedArgs = this.encodeJSContractArgs(contractId, methodName, Object.keys(args).length > 0 ? JSON.stringify(args) : '');\n }\n else {\n encodedArgs = stringify(args);\n }\n const result = yield this.connection.provider.query(Object.assign(Object.assign({ request_type: 'call_function' }, blockQuery), { account_id: jsContract ? this.connection.jsvmAccountId : contractId, method_name: jsContract ? 'view_js_contract' : methodName, args_base64: encodedArgs.toString('base64') }));\n if (result.logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs: result.logs });\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n });\n }\n /**\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n viewState(prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { values } = yield this.connection.provider.query(Object.assign(Object.assign({ request_type: 'view_state' }, blockQuery), { account_id: this.accountId, prefix_base64: Buffer.from(prefix).toString('base64') }));\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n });\n }\n /**\n * Get all access keys for the account\n * @see [https://docs.near.org/api/rpc/access-keys#view-access-key-list](https://docs.near.org/api/rpc/access-keys#view-access-key-list)\n */\n getAccessKeys() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.connection.provider.query({\n request_type: 'view_access_key_list',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n // Replace raw nonce into a new BN\n return (_a = response === null || response === void 0 ? void 0 : response.keys) === null || _a === void 0 ? void 0 : _a.map((key) => (Object.assign(Object.assign({}, key), { access_key: Object.assign(Object.assign({}, key.access_key), { nonce: new bn_js_1.default(key.access_key.nonce) }) })));\n });\n }\n /**\n * Returns a list of authorized apps\n * @todo update the response value to return all the different keys, not just app keys.\n */\n getAccountDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = yield this.getAccessKeys();\n const authorizedApps = accessKeys\n .filter(item => item.access_key.permission !== 'FullAccess')\n .map(item => {\n const perm = item.access_key.permission;\n return {\n contractId: perm.FunctionCall.receiver_id,\n amount: perm.FunctionCall.allowance,\n publicKey: item.public_key,\n };\n });\n return { authorizedApps };\n });\n }\n /**\n * Returns calculated account balance\n */\n getAccountBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const protocolConfig = yield this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = yield this.state();\n const costPerByte = new bn_js_1.default(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = new bn_js_1.default(state.storage_usage).mul(costPerByte);\n const staked = new bn_js_1.default(state.locked);\n const totalBalance = new bn_js_1.default(state.amount).add(staked);\n const availableBalance = totalBalance.sub(bn_js_1.default.max(staked, stateStaked));\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n });\n }\n /**\n * Returns the NEAR tokens balance and validators of a given account that is delegated to the staking pools that are part of the validators set in the current epoch.\n *\n * NOTE: If the tokens are delegated to a staking pool that is currently on pause or does not have enough tokens to participate in validation, they won't be accounted for.\n * @returns {Promise}\n */\n getActiveDelegatedStakeBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const epochId = block.header.epoch_id;\n const { current_validators, next_validators, current_proposals } = yield this.connection.provider.validators(epochId);\n const pools = new Set();\n [...current_validators, ...next_validators, ...current_proposals]\n .forEach((validator) => pools.add(validator.account_id));\n const uniquePools = [...pools];\n const promises = uniquePools\n .map((validator) => (this.viewFunction({\n contractId: validator,\n methodName: 'get_account_total_balance',\n args: { account_id: this.accountId },\n blockQuery: { blockId: blockHash }\n })));\n const results = yield Promise.allSettled(promises);\n const hasTimeoutError = results.some((result) => {\n if (result.status === 'rejected' && result.reason.type === 'TimeoutError') {\n return true;\n }\n return false;\n });\n // When RPC is down and return timeout error, throw error\n if (hasTimeoutError) {\n throw new Error('Failed to get delegated stake balance');\n }\n const summary = results.reduce((result, state, index) => {\n const validatorId = uniquePools[index];\n if (state.status === 'fulfilled') {\n const currentBN = new bn_js_1.default(state.value);\n if (!currentBN.isZero()) {\n return Object.assign(Object.assign({}, result), { stakedValidators: [...result.stakedValidators, { validatorId, amount: currentBN.toString() }], total: result.total.add(currentBN) });\n }\n }\n if (state.status === 'rejected') {\n return Object.assign(Object.assign({}, result), { failedValidators: [...result.failedValidators, { validatorId, error: state.reason }] });\n }\n return result;\n }, { stakedValidators: [], failedValidators: [], total: new bn_js_1.default(0) });\n return Object.assign(Object.assign({}, summary), { total: summary.total.toString() });\n });\n }\n}\nexports.Account = Account;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst types_1 = require(\"@near-js/types\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst account_multisig_1 = require(\"./account_multisig\");\nconst constants_1 = require(\"./constants\");\nconst types_2 = require(\"./types\");\nconst { addKey, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey } = transactions_1.actionCreators;\nclass Account2FA extends account_multisig_1.AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n }\n /**\n * Sign a transaction to preform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n *\n * @param options Options for the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n yield this.sendCode();\n const result = yield this.promptAndVerify();\n if (this.onConfirmResult) {\n yield this.onConfirmResult(result);\n }\n return result;\n });\n }\n // default helpers for CH deployments of multisig\n /**\n * Deploy a multisig contract with 2FA and handle the deployment process.\n * @param contractBytes - The bytecode of the multisig contract.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deployment.\n */\n deployMultisig(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransactionWithAccount: { get: () => super.signAndSendTransactionWithAccount }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const seedOrLedgerKey = (yield this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (yield this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => deleteKey(pk)),\n ...fak2lak.map((pk) => addKey(pk, functionCallAccessKey(accountId, constants_1.MULTISIG_CHANGE_METHODS, null))),\n addKey(confirmOnlyKey, functionCallAccessKey(accountId, constants_1.MULTISIG_CONFIRM_METHODS, null)),\n deployContract(contractBytes),\n ];\n const newFunctionCallActionBatch = actions.concat(functionCall('new', newArgs, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT));\n utils_1.Logger.log('deploying multisig contract for', accountId);\n const { stateStatus: multisigStateStatus } = yield this.checkMultisigCodeAndStateStatus(contractBytes);\n switch (multisigStateStatus) {\n case types_2.MultisigStateStatus.STATE_NOT_INITIALIZED:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, newFunctionCallActionBatch);\n case types_2.MultisigStateStatus.VALID_STATE:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, actions);\n case types_2.MultisigStateStatus.INVALID_STATE:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState');\n default:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n });\n }\n /**\n * Disable 2FA with the option to clean up contract state.\n * @param options Options for disabling 2FA.\n * @param options.contractBytes The bytecode of the contract to deploy.\n * @param options.cleanupContractBytes The bytecode of the cleanup contract (optional).\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disableWithFAK({ contractBytes, cleanupContractBytes }) {\n return __awaiter(this, void 0, void 0, function* () {\n let cleanupActions = [];\n if (cleanupContractBytes) {\n yield this.deleteAllRequests().catch(e => e);\n cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes);\n }\n const keyConversionActions = yield this.get2faDisableKeyConversionActions();\n const actions = [\n ...cleanupActions,\n ...keyConversionActions,\n deployContract(contractBytes)\n ];\n const accessKeyInfo = yield this.findAccessKey(this.accountId, actions);\n if (accessKeyInfo && accessKeyInfo.accessKey && accessKeyInfo.accessKey.permission !== 'FullAccess') {\n throw new types_1.TypedError('No full access key found in keystore. Unable to bypass multisig', 'NoFAKFound');\n }\n return this.signAndSendTransactionWithAccount(this.accountId, actions);\n });\n }\n /**\n * Retrieves cleanup actions for disabling 2FA.\n * @param cleanupContractBytes - The bytecode of the cleanup contract.\n * @returns {Promise} - A promise that resolves to an array of cleanup actions.\n */\n get2faDisableCleanupActions(cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentAccountState = yield this.viewState('').catch(error => {\n const cause = error.cause && error.cause.name;\n if (cause == 'NO_CONTRACT_CODE') {\n return [];\n }\n throw cause == 'TOO_LARGE_CONTRACT_STATE'\n ? new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState')\n : error;\n });\n const currentAccountStateKeys = currentAccountState.map(({ key }) => key.toString('base64'));\n return currentAccountState.length ? [\n deployContract(cleanupContractBytes),\n functionCall('clean', { keys: currentAccountStateKeys }, constants_1.MULTISIG_GAS, new bn_js_1.default('0'))\n ] : [];\n });\n }\n /**\n * Retrieves key conversion actions for disabling 2FA.\n * @returns {Promise} - A promise that resolves to an array of key conversion actions.\n */\n get2faDisableKeyConversionActions() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const accessKeys = yield this.getAccessKeys();\n const lak2fak = accessKeys\n .filter(({ access_key }) => access_key.permission !== 'FullAccess')\n .filter(({ access_key }) => {\n const perm = access_key.permission.FunctionCall;\n return perm.receiver_id === accountId &&\n perm.method_names.length === 4 &&\n perm.method_names.includes('add_request_and_confirm');\n });\n const confirmOnlyKey = crypto_1.PublicKey.from((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n return [\n deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => deleteKey(crypto_1.PublicKey.from(public_key))),\n ...lak2fak.map(({ public_key }) => addKey(crypto_1.PublicKey.from(public_key), fullAccessKey()))\n ];\n });\n }\n /**\n * This method converts LAKs back to FAKs, clears state and deploys an 'empty' contract (contractBytes param)\n * @param [contractBytes]{@link https://github.com/near/near-wallet/blob/master/packages/frontend/src/wasm/main.wasm?raw=true}\n * @param [cleanupContractBytes]{@link https://github.com/near/core-contracts/blob/master/state-manipulation/res/state_cleanup.wasm?raw=true}\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disable(contractBytes, cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const { stateStatus } = yield this.checkMultisigCodeAndStateStatus();\n if (stateStatus !== types_2.MultisigStateStatus.VALID_STATE && stateStatus !== types_2.MultisigStateStatus.STATE_NOT_INITIALIZED) {\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n let deleteAllRequestsError;\n yield this.deleteAllRequests().catch(e => deleteAllRequestsError = e);\n const cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes).catch(e => {\n if (e.type === 'ContractHasExistingState') {\n throw deleteAllRequestsError || e;\n }\n throw e;\n });\n const actions = [\n ...cleanupActions,\n ...(yield this.get2faDisableKeyConversionActions()),\n deployContract(contractBytes),\n ];\n utils_1.Logger.log('disabling 2fa for', this.accountId);\n return yield this.signAndSendTransaction({\n receiverId: this.accountId,\n actions\n });\n });\n }\n /**\n * Default implementation for sending the 2FA code.\n * @returns {Promise} - A promise that resolves to the request ID.\n */\n sendCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const { requestId } = this.getRequest();\n const method = yield this.get2faMethod();\n yield this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n });\n }\n getCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n });\n }\n /**\n * Prompts the user to enter and verify the 2FA code.\n * @returns {Promise} - A promise that resolves to the verification result.\n */\n promptAndVerify() {\n return __awaiter(this, void 0, void 0, function* () {\n const method = yield this.get2faMethod();\n const securityCode = yield this.getCode(method);\n try {\n const result = yield this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n utils_1.Logger.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return yield this.promptAndVerify();\n }\n throw e;\n }\n });\n }\n /**\n * Verify the 2FA code using the default method.\n * @param securityCode - The security code to verify.\n * @returns {Promise} A promise that resolves to the verification result.\n */\n verifyCodeDefault(securityCode) {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return yield this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n });\n }\n /**\n * Retrieves recovery methods for the account.\n * @returns {Promise<{ accountId: string, data: any }>} - A promise that resolves to recovery methods data.\n */\n getRecoveryMethods() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n return {\n accountId,\n data: yield this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n });\n }\n /**\n * Gets the 2FA method (kind and detail).\n * @returns {Promise<{ kind: string, detail: string }>} A promise that resolves to the 2FA method.\n */\n get2faMethod() {\n return __awaiter(this, void 0, void 0, function* () {\n let { data } = yield this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n });\n }\n /**\n * Generates a signature for the latest finalized block.\n * @returns {Promise<{ blockNumber: string, blockNumberSignature: string }>} - A promise that resolves to the signature information.\n */\n signatureFor() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = yield this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n });\n }\n /**\n * Sends a signed JSON request to a specified path.\n * @param path - The path for the request.\n * @param body - The request body.\n * @returns {Promise} - A promise that resolves to the response from the helper.\n */\n postSignedJson(path, body) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, providers_1.fetchJson)(this.helperUrl + path, JSON.stringify(Object.assign(Object.assign({}, body), (yield this.signatureFor()))));\n });\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => crypto_1.PublicKey.from(pk);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n });\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield (0, providers_1.fetchJson)(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n });\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountMultisig = void 0;\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_1 = require(\"./account\");\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"./types\");\nconst { deployContract, functionCall } = transactions_1.actionCreators;\nvar MultisigCodeStatus;\n(function (MultisigCodeStatus) {\n MultisigCodeStatus[MultisigCodeStatus[\"INVALID_CODE\"] = 0] = \"INVALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"VALID_CODE\"] = 1] = \"VALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"UNKNOWN_CODE\"] = 2] = \"UNKNOWN_CODE\";\n})(MultisigCodeStatus || (MultisigCodeStatus = {}));\n// in memory request cache for node w/o localStorage\nconst storageFallback = {\n [constants_1.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n /**\n * Constructs an instance of the `AccountMultisig` class.\n * @param connection The NEAR connection object.\n * @param accountId The NEAR account ID.\n * @param options Additional options for the multisig account.\n * @param options.storage Storage to store data related to multisig operations.\n * @param options.onAddRequestResult Callback function to handle the result of adding a request.\n */\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n }\n /**\n * Sign and send a transaction with the multisig account as the sender.\n * @param receiverId - The NEAR account ID of the transaction receiver.\n * @param actions - The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransactionWithAccount(receiverId, actions) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return _super.signAndSendTransaction.call(this, { receiverId, actions });\n });\n }\n /**\n * Sign and send a multisig transaction to add a request and confirm it.\n * @param options Options for the multisig transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n let result;\n try {\n result = yield _super.signAndSendTransaction.call(this, {\n receiverId: accountId,\n actions: [\n functionCall('add_request_and_confirm', args, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n catch (e) {\n if (e.toString().includes('Account has too many active requests. Confirm or delete some')) {\n yield this.deleteUnconfirmedRequests();\n return yield this.signAndSendTransaction({ receiverId, actions });\n }\n throw e;\n }\n // TODO: Are following even needed? Seems like it throws on error already\n if (!result.status) {\n throw new Error('Request failed');\n }\n const status = Object.assign({}, result.status);\n if (!status.SuccessValue || typeof status.SuccessValue !== 'string') {\n throw new Error('Request failed');\n }\n this.setRequest({\n accountId,\n actions,\n requestId: parseInt(Buffer.from(status.SuccessValue, 'base64').toString('ascii'), 10)\n });\n if (this.onAddRequestResult) {\n yield this.onAddRequestResult(result);\n }\n // NOTE there is no await on purpose to avoid blocking for 2fa\n this.deleteUnconfirmedRequests();\n return result;\n });\n }\n /**\n * This method submits a canary transaction that is expected to always fail in order to determine whether the contract currently has valid multisig state\n * and whether it is initialized. The canary transaction attempts to delete a request at index u32_max and will go through if a request exists at that index.\n * a u32_max + 1 and -1 value cannot be used for the canary due to expected u32 error thrown before deserialization attempt.\n * @param contractBytes The bytecode of the multisig contract.\n * @returns {Promise<{ codeStatus: MultisigCodeStatus; stateStatus: MultisigStateStatus }>} A promise that resolves to the status of the code and state.\n */\n checkMultisigCodeAndStateStatus(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const u32_max = 4294967295;\n const validCodeStatusIfNoDeploy = contractBytes ? MultisigCodeStatus.UNKNOWN_CODE : MultisigCodeStatus.VALID_CODE;\n try {\n if (contractBytes) {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId, actions: [\n deployContract(contractBytes),\n functionCall('delete_request', { request_id: u32_max }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n else {\n yield this.deleteRequest(u32_max);\n }\n return { codeStatus: MultisigCodeStatus.VALID_CODE, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n catch (e) {\n if (new RegExp(types_1.MultisigDeleteRequestRejectionError.CANNOT_DESERIALIZE_STATE).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.INVALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.MULTISIG_NOT_INITIALIZED).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.STATE_NOT_INITIALIZED };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.NO_SUCH_REQUEST).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.METHOD_NOT_FOUND).test(e && e.message)) {\n // not reachable if transaction included a deploy\n return { codeStatus: MultisigCodeStatus.INVALID_CODE, stateStatus: types_1.MultisigStateStatus.UNKNOWN_STATE };\n }\n throw e;\n }\n });\n }\n /**\n * Delete a multisig request by its ID.\n * @param request_id The ID of the multisig request to be deleted.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deletion.\n */\n deleteRequest(request_id) {\n return super.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n /**\n * Delete all multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when all requests are deleted.\n */\n deleteAllRequests() {\n return __awaiter(this, void 0, void 0, function* () {\n const request_ids = yield this.getRequestIds();\n if (request_ids.length) {\n yield Promise.all(request_ids.map((id) => this.deleteRequest(id)));\n }\n });\n }\n /**\n * Delete unconfirmed multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when unconfirmed requests are deleted.\n */\n deleteUnconfirmedRequests() {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Delete in batch, don't delete unexpired\n // TODO: Delete in batch, don't delete unexpired (can reduce gas usage dramatically)\n const request_ids = yield this.getRequestIds();\n const { requestId } = this.getRequest();\n for (const requestIdToDelete of request_ids) {\n if (requestIdToDelete == requestId) {\n continue;\n }\n try {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id: requestIdToDelete }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n catch (e) {\n utils_1.Logger.warn('Attempt to delete an earlier request before 15 minutes failed. Will try again.');\n }\n }\n });\n }\n // helpers\n getRequestIds() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Read requests from state to allow filtering by expiration time\n // TODO: https://github.com/near/core-contracts/blob/305d1db4f4f2cf5ce4c1ef3479f7544957381f11/multisig/src/lib.rs#L84\n return this.viewFunction({\n contractId: this.accountId,\n methodName: 'list_request_ids',\n });\n });\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(constants_1.MULTISIG_STORAGE_KEY) || '{}');\n }\n return storageFallback[constants_1.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(constants_1.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[constants_1.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: constants_1.MULTISIG_ALLOWANCE.toString(),\n method_names: constants_1.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst signers_1 = require(\"@near-js/signers\");\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(Object.assign({}, config.args));\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signers_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer, jsvmAccountId) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n this.jsvmAccountId = jsvmAccountId;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer, config.jsvmAccountId);\n }\n}\nexports.Connection = Connection;\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.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = new bn_js_1.default((0, utils_1.parseNearAmount)('1'));\n// TODO: Different gas value for different requests (can reduce gas usage dramatically)\nexports.MULTISIG_GAS = new bn_js_1.default('100000000000000');\nexports.MULTISIG_DEPOSIT = new bn_js_1.default('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst local_view_execution_1 = require(\"./local-view-execution\");\nconst ajv_1 = __importDefault(require(\"ajv\"));\nconst ajv_formats_1 = __importDefault(require(\"ajv-formats\"));\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst near_abi_1 = require(\"near-abi\");\nconst errors_1 = require(\"./errors\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n }\n }[name];\n}\nfunction validateArguments(args, abiFunction, ajv, abiRoot) {\n var _a;\n if (!isObject(args))\n return;\n if (abiFunction.params && abiFunction.params.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.params.serialization_type);\n }\n if (abiFunction.result && abiFunction.result.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.result.serialization_type);\n }\n const params = ((_a = abiFunction.params) === null || _a === void 0 ? void 0 : _a.args) || [];\n for (const p of params) {\n const arg = args[p.name];\n const typeSchema = p.type_schema;\n typeSchema.definitions = abiRoot.body.root_schema.definitions;\n const validate = ajv.compile(typeSchema);\n if (!validate(arg)) {\n throw new errors_1.ArgumentSchemaError(p.name, validate.errors);\n }\n }\n // Check there are no extra unknown arguments passed\n for (const argName of Object.keys(args)) {\n const param = params.find((p) => p.name === argName);\n if (!param) {\n throw new errors_1.UnknownArgumentError(argName, params.map((p) => p.name));\n }\n }\n}\nfunction createAjv() {\n // Strict mode is disabled for now as it complains about unknown formats. We need to\n // figure out if we want to support a fixed set of formats. `uint32` and `uint64`\n // are added explicitly just to reduce the amount of warnings as these are very popular\n // types.\n const ajv = new ajv_1.default({\n strictSchema: false,\n formats: {\n uint32: true,\n uint64: true\n }\n });\n (0, ajv_formats_1.default)(ajv);\n return ajv;\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === '[object Object]';\n/**\n * Defines a smart contract on NEAR including the change (mutable) and view (non-mutable) methods\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#contract](https://docs.near.org/tools/near-api-js/quick-reference#contract)\n * @example\n * ```js\n * import { Contract } from 'near-api-js';\n *\n * async function contractExample() {\n * const methodOptions = {\n * viewMethods: ['getMessageByAccountId'],\n * changeMethods: ['addMessage']\n * };\n * const contract = new Contract(\n * wallet.account(),\n * 'contract-id.testnet',\n * methodOptions\n * );\n *\n * // use a contract view method\n * const messages = await contract.getMessages({\n * accountId: 'example-account.testnet'\n * });\n *\n * // use a contract change method\n * await contract.addMessage({\n * meta: 'some info',\n * callbackUrl: 'https://example.com/callback',\n * args: { text: 'my message' },\n * amount: 1\n * })\n * }\n * ```\n */\nclass Contract {\n /**\n * @param account NEAR account to sign change method transactions\n * @param contractId NEAR account id where the contract is deployed\n * @param options NEAR smart contract methods that your application will use. These will be available as `contract.methodName`\n */\n constructor(account, contractId, options) {\n this.account = account;\n this.contractId = contractId;\n this.lve = new local_view_execution_1.LocalViewExecution(account);\n const { viewMethods = [], changeMethods = [], abi: abiRoot, useLocalViewExecution } = options;\n let viewMethodsWithAbi = viewMethods.map((name) => ({ name, abi: null }));\n let changeMethodsWithAbi = changeMethods.map((name) => ({ name, abi: null }));\n if (abiRoot) {\n if (viewMethodsWithAbi.length > 0 || changeMethodsWithAbi.length > 0) {\n throw new errors_1.ConflictingOptions();\n }\n viewMethodsWithAbi = abiRoot.body.functions\n .filter((m) => m.kind === near_abi_1.AbiFunctionKind.View)\n .map((m) => ({ name: m.name, abi: m }));\n changeMethodsWithAbi = abiRoot.body.functions\n .filter((methodAbi) => methodAbi.kind === near_abi_1.AbiFunctionKind.Call)\n .map((methodAbi) => ({ name: methodAbi.name, abi: methodAbi }));\n }\n const ajv = createAjv();\n viewMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (args = {}, options = {}, ...ignored) => __awaiter(this, void 0, void 0, function* () {\n if (ignored.length || !(isObject(args) || isUint8Array(args)) || !isObject(options)) {\n throw new types_1.PositionalArgsError();\n }\n if (abi) {\n validateArguments(args, abi, ajv, abiRoot);\n }\n if (useLocalViewExecution) {\n try {\n return yield this.lve.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n catch (error) {\n utils_1.Logger.warn(`Local view execution failed with: \"${error.message}\"`);\n utils_1.Logger.warn(`Fallback to normal RPC call`);\n }\n }\n return this.account.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }))\n });\n });\n changeMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (...args) => __awaiter(this, void 0, void 0, function* () {\n if (args.length && (args.length > 3 || !(isObject(args[0]) || isUint8Array(args[0])))) {\n throw new types_1.PositionalArgsError();\n }\n if (args.length > 1 || !(args[0] && args[0].args)) {\n const deprecate = (0, depd_1.default)('contract.methodName(args, gas, amount)');\n deprecate('use `contract.methodName({ args, gas?, amount?, callbackUrl?, meta? })` instead');\n args[0] = {\n args: args[0],\n gas: args[1],\n amount: args[2]\n };\n }\n if (abi) {\n validateArguments(args[0].args, abi, ajv, abiRoot);\n }\n return this._changeMethod(Object.assign({ methodName: name }, args[0]));\n }))\n });\n });\n }\n _changeMethod({ args, methodName, gas, amount, meta, callbackUrl }) {\n return __awaiter(this, void 0, void 0, function* () {\n validateBNLike({ gas, amount });\n const rawResult = yield this.account.functionCall({\n contractId: this.contractId,\n methodName,\n args,\n gas,\n attachedDeposit: amount,\n walletMeta: meta,\n walletCallbackUrl: callbackUrl\n });\n return (0, utils_1.getTransactionLastResult)(rawResult);\n });\n }\n}\nexports.Contract = Contract;\n/**\n * Validation on arguments being a big number from bn.js\n * Throws if an argument is not in BN format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = 'number, decimal string or BN';\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && !bn_js_1.default.isBN(argValue) && isNaN(argValue)) {\n throw new types_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConflictingOptions = exports.ArgumentSchemaError = exports.UnknownArgumentError = exports.UnsupportedSerializationError = void 0;\nclass UnsupportedSerializationError extends Error {\n constructor(methodName, serializationType) {\n super(`Contract method '${methodName}' is using an unsupported serialization type ${serializationType}`);\n }\n}\nexports.UnsupportedSerializationError = UnsupportedSerializationError;\nclass UnknownArgumentError extends Error {\n constructor(actualArgName, expectedArgNames) {\n super(`Unrecognized argument '${actualArgName}', expected '${JSON.stringify(expectedArgNames)}'`);\n }\n}\nexports.UnknownArgumentError = UnknownArgumentError;\nclass ArgumentSchemaError extends Error {\n constructor(argName, errors) {\n super(`Argument '${argName}' does not conform to the specified ABI schema: '${JSON.stringify(errors)}'`);\n }\n}\nexports.ArgumentSchemaError = ArgumentSchemaError;\nclass ConflictingOptions extends Error {\n constructor() {\n super('Conflicting contract method options have been passed. You can either specify ABI or a list of view/call methods.');\n }\n}\nexports.ConflictingOptions = ConflictingOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = exports.Contract = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.Connection = exports.AccountMultisig = exports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = exports.Account2FA = exports.Account = void 0;\nvar account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nvar account_2fa_1 = require(\"./account_2fa\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return account_2fa_1.Account2FA; } });\nvar account_creator_1 = require(\"./account_creator\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return account_creator_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return account_creator_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return account_creator_1.UrlAccountCreator; } });\nvar account_multisig_1 = require(\"./account_multisig\");\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return account_multisig_1.AccountMultisig; } });\nvar connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return constants_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return constants_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return constants_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return constants_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CONFIRM_METHODS; } });\nvar contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return errors_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return errors_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return errors_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return errors_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return types_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return types_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalViewExecution = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst storage_1 = require(\"./storage\");\nconst runtime_1 = require(\"./runtime\");\nclass LocalViewExecution {\n constructor(account) {\n this.account = account;\n this.storage = new storage_1.Storage();\n }\n fetchContractCode(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this.account.connection.provider.query(Object.assign({ request_type: 'view_code', account_id: contractId }, blockQuery));\n return result.code_base64;\n });\n }\n fetchContractState(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.account.viewState('', blockQuery);\n });\n }\n fetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.account.connection.provider.block(blockQuery);\n const blockHash = block.header.hash;\n const blockHeight = block.header.height;\n const blockTimestamp = block.header.timestamp;\n const contractCode = yield this.fetchContractCode(contractId, blockQuery);\n const contractState = yield this.fetchContractState(blockQuery);\n return {\n blockHash,\n blockHeight,\n blockTimestamp,\n contractCode,\n contractState,\n };\n });\n }\n loadOrFetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const stored = this.storage.load(blockQuery);\n if (stored) {\n return stored;\n }\n const _a = yield this.fetch(contractId, blockQuery), { blockHash } = _a, fetched = __rest(_a, [\"blockHash\"]);\n this.storage.save(blockHash, fetched);\n return fetched;\n });\n }\n /**\n * Calls a view function on a contract, fetching the contract code and state if needed.\n * @param options Options for calling the view function.\n * @param options.contractId The contract account ID.\n * @param options.methodName The name of the view function to call.\n * @param options.args The arguments to pass to the view function.\n * @param options.blockQuery The block query options.\n * @returns {Promise} - A promise that resolves to the result of the view function.\n */\n viewFunction(_a) {\n var { contractId, methodName, args = {}, blockQuery = { finality: 'optimistic' } } = _a, ignored = __rest(_a, [\"contractId\", \"methodName\", \"args\", \"blockQuery\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const methodArgs = JSON.stringify(args);\n const { contractCode, contractState, blockHeight, blockTimestamp } = yield this.loadOrFetch(contractId, blockQuery);\n const runtime = new runtime_1.Runtime({ contractId, contractCode, contractState, blockHeight, blockTimestamp, methodArgs });\n const { result, logs } = yield runtime.execute(methodName);\n if (logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs });\n }\n return JSON.parse(Buffer.from(result).toString());\n });\n }\n}\nexports.LocalViewExecution = LocalViewExecution;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Runtime = void 0;\nconst crypto_1 = require(\"crypto\");\nconst notImplemented = (name) => () => {\n throw new Error('method not implemented: ' + name);\n};\nconst prohibitedInView = (name) => () => {\n throw new Error('method not available for view calls: ' + name);\n};\nclass Runtime {\n constructor(_a) {\n var { contractCode } = _a, context = __rest(_a, [\"contractCode\"]);\n this.context = context;\n this.wasm = this.prepareWASM(Buffer.from(contractCode, 'base64'));\n this.memory = new WebAssembly.Memory({ initial: 1024, maximum: 2048 });\n this.registers = {};\n this.logs = [];\n this.result = Buffer.from([]);\n }\n readUTF16CStr(ptr) {\n const arr = [];\n const mem = new Uint16Array(this.memory.buffer);\n let key = Number(ptr) / 2;\n while (mem[key] != 0) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(Uint16Array.from(arr).buffer).toString('ucs2');\n }\n readUTF8CStr(len, ptr) {\n const arr = [];\n const mem = new Uint8Array(this.memory.buffer);\n let key = Number(ptr);\n for (let i = 0; i < len && mem[key] != 0; i++) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(arr).toString('utf8');\n }\n storageRead(keyLen, keyPtr) {\n const storageKey = Buffer.from(new Uint8Array(this.memory.buffer, Number(keyPtr), Number(keyLen)));\n const stateVal = this.context.contractState.filter((obj) => Buffer.compare(obj.key, storageKey) === 0).map((obj) => obj.value);\n if (stateVal.length === 0)\n return null;\n return stateVal.length > 1 ? stateVal : stateVal[0];\n }\n prepareWASM(input) {\n const parts = [];\n const magic = input.subarray(0, 4);\n if (magic.toString('utf8') !== '\\0asm') {\n throw new Error('Invalid magic number');\n }\n const version = input.readUInt32LE(4);\n if (version != 1) {\n throw new Error('Invalid version: ' + version);\n }\n let offset = 8;\n parts.push(input.subarray(0, offset));\n function decodeLEB128() {\n let result = 0;\n let shift = 0;\n let byte;\n do {\n byte = input[offset++];\n result |= (byte & 0x7f) << shift;\n shift += 7;\n } while (byte & 0x80);\n return result;\n }\n function decodeLimits() {\n const flags = input[offset++];\n const hasMax = flags & 0x1;\n const initial = decodeLEB128();\n const max = hasMax ? decodeLEB128() : null;\n return { initial, max };\n }\n function decodeString() {\n const length = decodeLEB128();\n const result = input.subarray(offset, offset + length);\n offset += length;\n return result.toString('utf8');\n }\n function encodeLEB128(value) {\n const result = [];\n do {\n let byte = value & 0x7f;\n value >>= 7;\n if (value !== 0) {\n byte |= 0x80;\n }\n result.push(byte);\n } while (value !== 0);\n return Buffer.from(result);\n }\n function encodeString(value) {\n const result = Buffer.from(value, 'utf8');\n return Buffer.concat([encodeLEB128(result.length), result]);\n }\n do {\n const sectionStart = offset;\n const sectionId = input.readUInt8(offset);\n offset++;\n const sectionSize = decodeLEB128();\n const sectionEnd = offset + sectionSize;\n if (sectionId == 5) {\n // Memory section\n // Make sure it's empty and only imported memory is used\n parts.push(Buffer.from([5, 1, 0]));\n }\n else if (sectionId == 2) {\n // Import section\n const sectionParts = [];\n const numImports = decodeLEB128();\n for (let i = 0; i < numImports; i++) {\n const importStart = offset;\n decodeString();\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n let skipImport = false;\n switch (kind) {\n case 0:\n // Function import\n decodeLEB128(); // index\n break;\n case 1:\n // Table import\n offset++; // type\n decodeLimits();\n break;\n case 2:\n // Memory import\n decodeLimits();\n // NOTE: existing memory import is removed (so no need to add it to sectionParts)\n skipImport = true;\n break;\n case 3:\n // Global import\n offset++; // type\n offset++; // mutability\n break;\n default:\n throw new Error('Invalid import kind: ' + kind);\n }\n if (!skipImport) {\n sectionParts.push(input.subarray(importStart, offset));\n }\n }\n const importMemory = Buffer.concat([\n encodeString('env'),\n encodeString('memory'),\n Buffer.from([2]),\n Buffer.from([0]),\n encodeLEB128(1),\n ]);\n sectionParts.push(importMemory);\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([2]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else if (sectionId == 7) {\n // Export section\n const sectionParts = [];\n const numExports = decodeLEB128();\n for (let i = 0; i < numExports; i++) {\n const exportStart = offset;\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n decodeLEB128();\n if (kind !== 2) {\n // Pass through all exports except memory\n sectionParts.push(input.subarray(exportStart, offset));\n }\n }\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([7]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else {\n parts.push(input.subarray(sectionStart, sectionEnd));\n }\n offset = sectionEnd;\n } while (offset < input.length);\n return Buffer.concat(parts);\n }\n // Host functions\n getRegisterLength(registerId) {\n return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER);\n }\n readFromRegister(registerId, ptr) {\n const mem = new Uint8Array(this.memory.buffer);\n mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr));\n }\n getCurrentAccountId(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.contractId);\n }\n inputMethodArgs(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs);\n }\n getBlockHeight() {\n return BigInt(this.context.blockHeight);\n }\n getBlockTimestamp() {\n return BigInt(this.context.blockTimestamp);\n }\n sha256(valueLen, valuePtr, registerId) {\n const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen));\n const hash = (0, crypto_1.createHash)('sha256');\n hash.update(value);\n this.registers[registerId.toString()] = hash.digest();\n }\n returnValue(valueLen, valuePtr) {\n this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)));\n }\n panic(message) {\n throw new Error('panic: ' + message);\n }\n abort(msg_ptr, filename_ptr, line, col) {\n const msg = this.readUTF16CStr(msg_ptr);\n const filename = this.readUTF16CStr(filename_ptr);\n const message = `${msg} ${filename}:${line}:${col}`;\n if (!msg || !filename) {\n throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.');\n }\n throw new Error('abort: ' + message);\n }\n appendToLog(len, ptr) {\n this.logs.push(this.readUTF8CStr(len, ptr));\n }\n readStorage(key_len, key_ptr, register_id) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n this.registers[register_id] = result;\n return BigInt(1);\n }\n hasStorageKey(key_len, key_ptr) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n return BigInt(1);\n }\n getHostImports() {\n return {\n register_len: this.getRegisterLength.bind(this),\n read_register: this.readFromRegister.bind(this),\n current_account_id: this.getCurrentAccountId.bind(this),\n input: this.inputMethodArgs.bind(this),\n block_index: this.getBlockHeight.bind(this),\n block_timestamp: this.getBlockTimestamp.bind(this),\n sha256: this.sha256.bind(this),\n value_return: this.returnValue.bind(this),\n abort: this.abort.bind(this),\n log_utf8: this.appendToLog.bind(this),\n log_utf16: this.appendToLog.bind(this),\n storage_read: this.readStorage.bind(this),\n storage_has_key: this.hasStorageKey.bind(this),\n panic: () => this.panic('explicit guest panic'),\n panic_utf8: (len, ptr) => this.panic(this.readUTF8CStr(len, ptr)),\n // Not implemented\n epoch_height: notImplemented('epoch_height'),\n storage_usage: notImplemented('storage_usage'),\n account_balance: notImplemented('account_balance'),\n account_locked_balance: notImplemented('account_locked_balance'),\n random_seed: notImplemented('random_seed'),\n ripemd160: notImplemented('ripemd160'),\n keccak256: notImplemented('keccak256'),\n keccak512: notImplemented('keccak512'),\n ecrecover: notImplemented('ecrecover'),\n validator_stake: notImplemented('validator_stake'),\n validator_total_stake: notImplemented('validator_total_stake'),\n // Prohibited\n write_register: prohibitedInView('write_register'),\n signer_account_id: prohibitedInView('signer_account_id'),\n signer_account_pk: prohibitedInView('signer_account_pk'),\n predecessor_account_id: prohibitedInView('predecessor_account_id'),\n attached_deposit: prohibitedInView('attached_deposit'),\n prepaid_gas: prohibitedInView('prepaid_gas'),\n used_gas: prohibitedInView('used_gas'),\n promise_create: prohibitedInView('promise_create'),\n promise_then: prohibitedInView('promise_then'),\n promise_and: prohibitedInView('promise_and'),\n promise_batch_create: prohibitedInView('promise_batch_create'),\n promise_batch_then: prohibitedInView('promise_batch_then'),\n promise_batch_action_create_account: prohibitedInView('promise_batch_action_create_account'),\n promise_batch_action_deploy_contract: prohibitedInView('promise_batch_action_deploy_contract'),\n promise_batch_action_function_call: prohibitedInView('promise_batch_action_function_call'),\n promise_batch_action_function_call_weight: prohibitedInView('promise_batch_action_function_call_weight'),\n promise_batch_action_transfer: prohibitedInView('promise_batch_action_transfer'),\n promise_batch_action_stake: prohibitedInView('promise_batch_action_stake'),\n promise_batch_action_add_key_with_full_access: prohibitedInView('promise_batch_action_add_key_with_full_access'),\n promise_batch_action_add_key_with_function_call: prohibitedInView('promise_batch_action_add_key_with_function_call'),\n promise_batch_action_delete_key: prohibitedInView('promise_batch_action_delete_key'),\n promise_batch_action_delete_account: prohibitedInView('promise_batch_action_delete_account'),\n promise_results_count: prohibitedInView('promise_results_count'),\n promise_result: prohibitedInView('promise_result'),\n promise_return: prohibitedInView('promise_return'),\n storage_write: prohibitedInView('storage_write'),\n storage_remove: prohibitedInView('storage_remove'),\n };\n }\n execute(methodName) {\n return __awaiter(this, void 0, void 0, function* () {\n const module = yield WebAssembly.compile(this.wasm);\n const instance = yield WebAssembly.instantiate(module, { env: Object.assign(Object.assign({}, this.getHostImports()), { memory: this.memory }) });\n const callMethod = instance.exports[methodName];\n if (callMethod == undefined) {\n throw new Error(`Contract method '${methodName}' does not exists in contract ${this.context.contractId} for block id ${this.context.blockHeight}`);\n }\n callMethod();\n return {\n result: this.result,\n logs: this.logs\n };\n });\n }\n}\nexports.Runtime = Runtime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = void 0;\nconst lru_map_1 = require(\"lru_map\");\nclass Storage {\n constructor(options = { max: Storage.MAX_ELEMENTS }) {\n this.cache = new lru_map_1.LRUMap(options.max);\n this.blockHeights = new Map();\n }\n load(blockRef) {\n const noBlockId = !('blockId' in blockRef);\n if (noBlockId)\n return undefined;\n let blockId = blockRef.blockId;\n // block hash is passed, so get its corresponding block height\n if (blockId.toString().length == 44) {\n blockId = this.blockHeights.get(blockId.toString());\n }\n // get cached values for the given block height\n return this.cache.get(blockId);\n }\n save(blockHash, { blockHeight, blockTimestamp, contractCode, contractState }) {\n this.blockHeights.set(blockHash, blockHeight);\n this.cache.set(blockHeight, { blockHeight, blockTimestamp, contractCode, contractState });\n }\n}\nexports.Storage = Storage;\nStorage.MAX_ELEMENTS = 100;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = void 0;\nvar MultisigDeleteRequestRejectionError;\n(function (MultisigDeleteRequestRejectionError) {\n MultisigDeleteRequestRejectionError[\"CANNOT_DESERIALIZE_STATE\"] = \"Cannot deserialize the contract state\";\n MultisigDeleteRequestRejectionError[\"MULTISIG_NOT_INITIALIZED\"] = \"Smart contract panicked: Multisig contract should be initialized before usage\";\n MultisigDeleteRequestRejectionError[\"NO_SUCH_REQUEST\"] = \"Smart contract panicked: panicked at 'No such request: either wrong number or already confirmed'\";\n MultisigDeleteRequestRejectionError[\"REQUEST_COOLDOWN_ERROR\"] = \"Request cannot be deleted immediately after creation.\";\n MultisigDeleteRequestRejectionError[\"METHOD_NOT_FOUND\"] = \"Contract method is not found\";\n})(MultisigDeleteRequestRejectionError = exports.MultisigDeleteRequestRejectionError || (exports.MultisigDeleteRequestRejectionError = {}));\nvar MultisigStateStatus;\n(function (MultisigStateStatus) {\n MultisigStateStatus[MultisigStateStatus[\"INVALID_STATE\"] = 0] = \"INVALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"STATE_NOT_INITIALIZED\"] = 1] = \"STATE_NOT_INITIALIZED\";\n MultisigStateStatus[MultisigStateStatus[\"VALID_STATE\"] = 2] = \"VALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"UNKNOWN_STATE\"] = 3] = \"UNKNOWN_STATE\";\n})(MultisigStateStatus = exports.MultisigStateStatus || (exports.MultisigStateStatus = {}));\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exponentialBackoff = void 0;\nfunction exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = yield getResult();\n if (result) {\n return result;\n }\n yield sleep(waitTime);\n waitTime *= waitBackoff;\n }\n return null;\n });\n}\nexports.exponentialBackoff = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\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 });\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst http_1 = __importDefault(require(\"http\"));\nconst https_1 = __importDefault(require(\"https\"));\nconst httpAgent = new http_1.default.Agent({ keepAlive: true });\nconst httpsAgent = new https_1.default.Agent({ keepAlive: true });\nfunction agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n}\nfunction default_1(resource, init) {\n return (0, node_fetch_1.default)(resource, Object.assign({ agent: agent(new URL(resource.toString())) }, init));\n}\nexports.default = default_1;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n/**\n * Performs an HTTP request to a specified URL or connection and returns the parsed JSON response.\n * @param connectionInfoOrUrl The connection information or URL for the HTTP request.\n * @param json The JSON payload to be included in the request body for POST requests.\n * @returns A Promise that resolves to the parsed JSON response from the HTTP request.\n */\nfunction fetchJson(connectionInfoOrUrl, json) {\n return __awaiter(this, void 0, void 0, function* () {\n let connectionInfo = { url: null };\n if (typeof (connectionInfoOrUrl) === 'string') {\n connectionInfo.url = connectionInfoOrUrl;\n }\n else {\n connectionInfo = connectionInfoOrUrl;\n }\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield ((_a = global.fetch) !== null && _a !== void 0 ? _a : (yield Promise.resolve().then(() => __importStar(require('./fetch')))).default)(connectionInfo.url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: Object.assign(Object.assign({}, connectionInfo.headers), { 'Content-Type': 'application/json' })\n });\n if (!response.ok) {\n if (response.status === 503) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as it's not available now`);\n return null;\n }\n else if (response.status === 408) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as the previous connection was unused for some time`);\n return null;\n }\n throw (0, http_errors_1.default)(response.status, yield response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n }));\n if (!response) {\n throw new types_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${connectionInfo.url}.`, 'RetriesExceeded');\n }\n return yield response.json();\n });\n}\nexports.fetchJson = fetchJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = exports.Provider = exports.JsonRpcProvider = exports.exponentialBackoff = void 0;\nvar exponential_backoff_1 = require(\"./exponential-backoff\");\nObject.defineProperty(exports, \"exponentialBackoff\", { enumerable: true, get: function () { return exponential_backoff_1.exponentialBackoff; } });\nvar json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nvar provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nvar fetch_json_1 = require(\"./fetch_json\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return fetch_json_1.fetchJson; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link JsonRpcProvider} client class\n * which can be used to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst provider_1 = require(\"./provider\");\nconst fetch_json_1 = require(\"./fetch_json\");\n/** @hidden */\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass JsonRpcProvider extends provider_1.Provider {\n /**\n * @param connectionInfo Connection info\n */\n constructor(connectionInfo) {\n super();\n this.connection = connectionInfo || { url: '' };\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('status', []);\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('broadcast_tx_commit', [Buffer.from(bytes).toString('base64')]);\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('broadcast_tx_async', [Buffer.from(bytes).toString('base64')]);\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n */\n txStatus(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.txStatusString(txHash, accountId);\n }\n else {\n return this.txStatusUint8Array(txHash, accountId);\n }\n });\n }\n txStatusUint8Array(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', [(0, utils_1.baseEncode)(txHash), accountId]);\n });\n }\n txStatusString(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', [txHash, accountId]);\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [txHash, accountId]);\n }\n else {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [(0, utils_1.baseEncode)(txHash), accountId]);\n }\n });\n }\n /**\n * Query the RPC by passing an {@link \"@near-js/types\".provider/request.RpcQueryRequest | RpcQueryRequest }\n * @see [https://docs.near.org/api/rpc/contracts](https://docs.near.org/api/rpc/contracts)\n *\n * @typeParam T the shape of the returned query response\n */\n query(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (args.length === 1) {\n const _a = args[0], { block_id, blockId } = _a, otherParams = __rest(_a, [\"block_id\", \"blockId\"]);\n result = yield this.sendJsonRpc('query', Object.assign(Object.assign({}, otherParams), { block_id: block_id || blockId }));\n }\n else {\n const [path, data] = args;\n result = yield this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new types_1.TypedError(`Querying failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, (0, utils_1.getErrorTypeFromErrorMessage)(result.error, result.error.name));\n }\n return result;\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes_in_block', { block_id: blockId, finality });\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('chunk', [chunkId]);\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('validators', [blockId]);\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n const _a = blockReference, { blockId } = _a, otherParams = __rest(_a, [\"blockId\"]);\n return yield this.sendJsonRpc('EXPERIMENTAL_protocol_config', Object.assign(Object.assign({}, otherParams), { block_id: blockId }));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('next_light_client_block', request);\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'all_access_key_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'single_access_key_changes',\n keys: accessKeyArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'account_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'data_changes',\n account_ids: accountIdArray,\n key_prefix_base64: keyPrefix,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'contract_code_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('gas_price', [blockId]);\n });\n }\n /**\n * Directly call the RPC specifying the method and params\n *\n * @param method RPC method\n * @param params Parameters to the method\n */\n sendJsonRpc(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(REQUEST_RETRY_WAIT, REQUEST_RETRY_NUMBER, REQUEST_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = yield (0, fetch_json_1.fetchJson)(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new types_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw (0, utils_1.parseRpcError)(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new types_1.TypedError(errorMessage, 'TimeoutError');\n }\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.error.data, '');\n if (errorType) {\n throw new types_1.TypedError((0, utils_1.formatError)(errorType, params), errorType);\n }\n throw new types_1.TypedError(errorMessage, response.error.name);\n }\n }\n else if (typeof ((_a = response.result) === null || _a === void 0 ? void 0 : _a.error) === 'string') {\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.result.error, '');\n if (errorType) {\n throw new utils_1.ServerError((0, utils_1.formatError)(errorType, params), errorType);\n }\n }\n // Success when response.error is not exist\n return response;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n utils_1.Logger.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n }));\n const { result } = response;\n // From jsonrpc spec:\n // result\n // This member is REQUIRED on success.\n // This member MUST NOT exist if there was an error invoking the method.\n if (typeof result === 'undefined') {\n throw new types_1.TypedError(`Exceeded ${REQUEST_RETRY_NUMBER} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n });\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Provider = void 0;\n/** @hidden */\nclass Provider {\n}\nexports.Provider = Provider;\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nclass Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) return\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","export abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(private readonly varKind: Name, private readonly name: Name, private rhs?: SafeExpr) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(readonly lhs: Code, public rhs: SafeExpr, private readonly sideEffects?: boolean) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(lhs: Code, private readonly op: Code, rhs: SafeExpr, sideEffects?: boolean) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(private condition: Code | boolean, nodes?: ChildNode[]) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(public name: Name, public args: Code, public async?: boolean) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record\n\ntype ScopeValues = {\n [Prefix in string]?: Map\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport * as URI from \"uri-js\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URI.URIComponents,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponents} from \"uri-js\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponents): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let baseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") baseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = baseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(baseId ? _resolve(baseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = typeof _jsonTypes[number]\n\nconst jsonTypes: Set = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs): MergeEvaluatedFunc {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc\n items: MergeEvaluatedFunc\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n it.dataTypes = it.dataTypes.filter((t) => includesType(types, t))\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set = new Set()\n private readonly _loading: {[Ref in string]?: Promise} = {}\n private readonly _cache: Map = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise\n validate(schema: Schema | JSONSchemaType | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate(schema: JTDSchemaType, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n validate(\n schema: T,\n data: unknown\n ): data is JTDDataType\n validate(schema: AsyncSchema, data: unknown | T): Promise\n validate(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise\n validate(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n data: unknown | T // to be validated\n ): boolean | Promise {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile(schema: Schema | JSONSchemaType, _meta?: boolean): ValidateFunction\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile(schema: JTDSchemaType, _meta?: boolean): ValidateFunction\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n compile(\n schema: T,\n _meta?: boolean\n ): ValidateFunction>\n compile(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction\n compile(schema: AnySchema, _meta?: boolean): AnyValidateFunction\n compile(schema: AnySchema, _meta?: boolean): AnyValidateFunction {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync(\n schema: SchemaObject | JSONSchemaType,\n _meta?: boolean\n ): Promise>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync(schema: JTDSchemaType, _meta?: boolean): Promise>\n compileAsync(schema: AsyncSchema, meta?: boolean): Promise>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise>\n compileAsync(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef: string): AnyValidateFunction | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import * as uri from \"uri-js\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj | DiscrErrorObj\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, sch?.$ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator\n | FormatValidator\n | AsyncFormatValidator\n | AsyncFormatValidator\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {data, $data, schema, schemaCode, it} = cxt\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeySize = exports.KeyType = void 0;\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nvar KeySize;\n(function (KeySize) {\n KeySize[KeySize[\"SECRET_KEY\"] = 32] = \"SECRET_KEY\";\n})(KeySize = exports.KeySize || (exports.KeySize = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyPairEd25519 = exports.KeyPair = exports.KeyType = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return constants_1.KeyType; } });\nvar key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nvar key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_ed25519_1.KeyPairEd25519; } });\nvar public_key_1 = require(\"./public_key\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return public_key_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPair = void 0;\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nclass KeyPair extends key_pair_base_1.KeyPairBase {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return key_pair_ed25519_1.KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n /**\n * Creates a key pair from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {KeyPair} The key pair created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new key_pair_ed25519_1.KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new key_pair_ed25519_1.KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairBase = void 0;\nclass KeyPairBase {\n}\nexports.KeyPairBase = KeyPairBase;\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.KeyPairEd25519 = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst randombytes_1 = __importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"./constants\");\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst public_key_1 = require(\"./public_key\");\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends key_pair_base_1.KeyPairBase {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param extendedSecretKey\n */\n constructor(extendedSecretKey) {\n super();\n const decoded = (0, utils_1.baseDecode)(extendedSecretKey);\n const secretKey = new Uint8Array(decoded.slice(0, constants_1.KeySize.SECRET_KEY));\n const publicKey = ed25519_1.ed25519.getPublicKey(secretKey);\n this.publicKey = new public_key_1.PublicKey({ keyType: constants_1.KeyType.ED25519, data: publicKey });\n this.secretKey = (0, utils_1.baseEncode)(secretKey);\n this.extendedSecretKey = extendedSecretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const secretKey = (0, randombytes_1.default)(constants_1.KeySize.SECRET_KEY);\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n const extendedSecretKey = new Uint8Array([...secretKey, ...publicKey]);\n return new KeyPairEd25519((0, utils_1.baseEncode)(extendedSecretKey));\n }\n /**\n * Signs a message using the key pair's secret key.\n * @param message The message to be signed.\n * @returns {Signature} The signature object containing the signature and the public key.\n */\n sign(message) {\n const signature = ed25519_1.ed25519.sign(message, (0, utils_1.baseDecode)(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n /**\n * Verifies the signature of a message using the key pair's public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n return this.publicKey.verify(message, signature);\n }\n /**\n * Returns a string representation of the key pair in the format 'ed25519:[extendedSecretKey]'.\n * @returns {string} The string representation of the key pair.\n */\n toString() {\n return `ed25519:${this.extendedSecretKey}`;\n }\n /**\n * Retrieves the public key associated with the key pair.\n * @returns {PublicKey} The public key.\n */\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst constants_1 = require(\"./constants\");\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case constants_1.KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return constants_1.KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends types_1.Assignable {\n /**\n * Creates a PublicKey instance from a string or an existing PublicKey instance.\n * @param value The string or PublicKey instance to create a PublicKey from.\n * @returns {PublicKey} The PublicKey instance.\n */\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n /**\n * Creates a PublicKey instance from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {PublicKey} The PublicKey instance created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n let publicKey;\n let keyType = constants_1.KeyType.ED25519;\n if (parts.length === 1) {\n publicKey = parts[0];\n }\n else if (parts.length === 2) {\n publicKey = parts[1];\n keyType = str_to_key_type(parts[0]);\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n const decodedPublicKey = (0, utils_1.baseDecode)(publicKey);\n if (decodedPublicKey.length !== constants_1.KeySize.SECRET_KEY) {\n throw new Error(`Invalid public key size (${decodedPublicKey.length}), must be ${constants_1.KeySize.SECRET_KEY}`);\n }\n return new PublicKey({ keyType, data: decodedPublicKey });\n }\n /**\n * Returns a string representation of the public key.\n * @returns {string} The string representation of the public key.\n */\n toString() {\n return `${key_type_to_str(this.keyType)}:${(0, utils_1.baseEncode)(this.data)}`;\n }\n /**\n * Verifies a message signature using the public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n switch (this.keyType) {\n case constants_1.KeyType.ED25519: return ed25519_1.ed25519.verify(signature, message, this.data);\n default: throw new Error(`Unknown key type ${this.keyType}`);\n }\n }\n}\nexports.PublicKey = PublicKey;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\n/**\n * This class is used to store keys in the browsers local storage.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores } from 'near-api-js';\n *\n * const keyStore = new keyStores.BrowserLocalStorageKeyStore();\n * const config = {\n * keyStore, // instance of BrowserLocalStorageKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass BrowserLocalStorageKeyStore extends keystores_1.KeyStore {\n /**\n * @param localStorage defaults to window.localStorage\n * @param prefix defaults to `near-api-js:keystore:`\n */\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Stores a {@link KeyPair} in local storage.\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n });\n }\n /**\n * Gets a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n });\n }\n /**\n * Removes all items that start with `prefix` from local storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n });\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n });\n }\n /**\n * @hidden\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage key that's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n /** @hidden */\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeySize = exports.KeyType = void 0;\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nvar KeySize;\n(function (KeySize) {\n KeySize[KeySize[\"SECRET_KEY\"] = 32] = \"SECRET_KEY\";\n})(KeySize = exports.KeySize || (exports.KeySize = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyPairEd25519 = exports.KeyPair = exports.KeyType = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return constants_1.KeyType; } });\nvar key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nvar key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_ed25519_1.KeyPairEd25519; } });\nvar public_key_1 = require(\"./public_key\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return public_key_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPair = void 0;\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nclass KeyPair extends key_pair_base_1.KeyPairBase {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return key_pair_ed25519_1.KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n /**\n * Creates a key pair from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {KeyPair} The key pair created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new key_pair_ed25519_1.KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new key_pair_ed25519_1.KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairBase = void 0;\nclass KeyPairBase {\n}\nexports.KeyPairBase = KeyPairBase;\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.KeyPairEd25519 = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst randombytes_1 = __importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"./constants\");\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst public_key_1 = require(\"./public_key\");\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends key_pair_base_1.KeyPairBase {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param extendedSecretKey\n */\n constructor(extendedSecretKey) {\n super();\n const decoded = (0, utils_1.baseDecode)(extendedSecretKey);\n const secretKey = new Uint8Array(decoded.slice(0, constants_1.KeySize.SECRET_KEY));\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n this.publicKey = new public_key_1.PublicKey({ keyType: constants_1.KeyType.ED25519, data: publicKey });\n this.secretKey = (0, utils_1.baseEncode)(secretKey);\n this.extendedSecretKey = extendedSecretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const secretKey = (0, randombytes_1.default)(constants_1.KeySize.SECRET_KEY);\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n const extendedSecretKey = new Uint8Array([...secretKey, ...publicKey]);\n return new KeyPairEd25519((0, utils_1.baseEncode)(extendedSecretKey));\n }\n /**\n * Signs a message using the key pair's secret key.\n * @param message The message to be signed.\n * @returns {Signature} The signature object containing the signature and the public key.\n */\n sign(message) {\n const signature = ed25519_1.ed25519.sign(message, (0, utils_1.baseDecode)(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n /**\n * Verifies the signature of a message using the key pair's public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n return this.publicKey.verify(message, signature);\n }\n /**\n * Returns a string representation of the key pair in the format 'ed25519:[extendedSecretKey]'.\n * @returns {string} The string representation of the key pair.\n */\n toString() {\n return `ed25519:${this.extendedSecretKey}`;\n }\n /**\n * Retrieves the public key associated with the key pair.\n * @returns {PublicKey} The public key.\n */\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst constants_1 = require(\"./constants\");\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case constants_1.KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return constants_1.KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends types_1.Assignable {\n /**\n * Creates a PublicKey instance from a string or an existing PublicKey instance.\n * @param value The string or PublicKey instance to create a PublicKey from.\n * @returns {PublicKey} The PublicKey instance.\n */\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n /**\n * Creates a PublicKey instance from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {PublicKey} The PublicKey instance created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n let publicKey;\n let keyType = constants_1.KeyType.ED25519;\n if (parts.length === 1) {\n publicKey = parts[0];\n }\n else if (parts.length === 2) {\n publicKey = parts[1];\n keyType = str_to_key_type(parts[0]);\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n const decodedPublicKey = (0, utils_1.baseDecode)(publicKey);\n if (decodedPublicKey.length !== constants_1.KeySize.SECRET_KEY) {\n throw new Error(`Invalid public key size (${decodedPublicKey.length}), must be ${constants_1.KeySize.SECRET_KEY}`);\n }\n return new PublicKey({ keyType, data: decodedPublicKey });\n }\n /**\n * Returns a string representation of the public key.\n * @returns {string} The string representation of the public key.\n */\n toString() {\n return `${key_type_to_str(this.keyType)}:${(0, utils_1.baseEncode)(this.data)}`;\n }\n /**\n * Verifies a message signature using the public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n switch (this.keyType) {\n case constants_1.KeyType.ED25519: return ed25519_1.ed25519.verify(signature, message, this.data);\n default: throw new Error(`Unknown key type ${this.keyType}`);\n }\n }\n}\nexports.PublicKey = PublicKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = BigInt('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = BigInt(10) ** BigInt(exports.NEAR_NOMINATION_EXP);\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = BigInt(10);\nfor (let i = 0, offset = BigInt(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset * BN10) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n let balanceBN = BigInt(balance);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN += ROUNDING_OFFSETS[roundingExp];\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || \"0\";\n const fractionStr = balance\n .substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, \"0\")\n .substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split(\".\");\n const wholePart = split[0];\n const fracPart = split[1] || \"\";\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, \"0\"));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, \"\").trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, \"\");\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, \"\");\n if (value === \"\") {\n return \"0\";\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, \"$1,$2\");\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBigIntAsc = void 0;\nfunction sortBigIntAsc(a, b) {\n return (a < b ? -1 : a > b ? 1 : 0);\n}\nexports.sortBigIntAsc = sortBigIntAsc;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst utils_1 = require(\"./utils\");\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const num = BigInt(numSeats);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (stakesSum < num) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = BigInt(1), right = stakesSum + BigInt(1);\n while (left !== right - BigInt(1)) {\n const mid = (left + right) / BigInt(2);\n let found = false;\n let currentSum = BigInt(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum + (stakes[i] / mid);\n if (currentSum >= num) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (validators.length < maxNumberOfSeats) {\n return stakesSum * BigInt(minimumStakeRatio[0]) / BigInt(minimumStakeRatio[1]);\n }\n else {\n return stakes[0] + BigInt(1);\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystore_1 = require(\"./keystore\");\n/**\n * Simple in-memory keystore for mainly for testing purposes.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores, utils } from 'near-api-js';\n *\n * const privateKey = '.......';\n * const keyPair = utils.KeyPair.fromString(privateKey);\n *\n * const keyStore = new keyStores.InMemoryKeyStore();\n * keyStore.setKey('testnet', 'example-account.testnet', keyPair);\n *\n * const config = {\n * keyStore, // instance of InMemoryKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Stores a {@link KeyPair} in in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n });\n }\n /**\n * Gets a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n delete this.keys[`${accountId}:${networkId}`];\n });\n }\n /**\n * Removes all {@link KeyPair} from in-memory storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys = {};\n });\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n });\n }\n /** @hidden */\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.KeyStore = exports.InMemoryKeyStore = void 0;\nvar in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nvar keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nvar merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * KeyStores are passed to {@link \"@near-js/wallet-account\".near.Near | Near} via {@link \"@near-js/wallet-account\".near.NearConfig | NearConfig}\n * and are used by the {@link \"@near-js/signers\".in_memory_signer.InMemorySigner | InMemorySigner} to sign transactions.\n *\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores read calls are attempted from start to end of array\n * @param options KeyStore options\n * @param options.writeKeyStoreIndex the keystore index that will receive all write calls\n */\n constructor(keyStores, options = { writeKeyStoreIndex: 0 }) {\n super();\n this.options = options;\n this.keyStores = keyStores;\n }\n /**\n * Store a {@link KeyPair} to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.keyStores[this.options.writeKeyStoreIndex].setKey(networkId, accountId, keyPair);\n });\n }\n /**\n * Gets a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n const keyPair = yield keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n });\n }\n /**\n * Removes a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.removeKey(networkId, accountId);\n }\n });\n }\n /**\n * Removes all items from each key store\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.clear();\n }\n });\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of yield keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n });\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of yield keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n });\n }\n /** @hidden */\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeySize = exports.KeyType = void 0;\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nvar KeySize;\n(function (KeySize) {\n KeySize[KeySize[\"SECRET_KEY\"] = 32] = \"SECRET_KEY\";\n})(KeySize = exports.KeySize || (exports.KeySize = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyPairEd25519 = exports.KeyPair = exports.KeyType = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return constants_1.KeyType; } });\nvar key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nvar key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_ed25519_1.KeyPairEd25519; } });\nvar public_key_1 = require(\"./public_key\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return public_key_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPair = void 0;\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nclass KeyPair extends key_pair_base_1.KeyPairBase {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return key_pair_ed25519_1.KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n /**\n * Creates a key pair from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {KeyPair} The key pair created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new key_pair_ed25519_1.KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new key_pair_ed25519_1.KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairBase = void 0;\nclass KeyPairBase {\n}\nexports.KeyPairBase = KeyPairBase;\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.KeyPairEd25519 = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst randombytes_1 = __importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"./constants\");\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst public_key_1 = require(\"./public_key\");\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends key_pair_base_1.KeyPairBase {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param extendedSecretKey\n */\n constructor(extendedSecretKey) {\n super();\n const decoded = (0, utils_1.baseDecode)(extendedSecretKey);\n const secretKey = new Uint8Array(decoded.slice(0, constants_1.KeySize.SECRET_KEY));\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n this.publicKey = new public_key_1.PublicKey({ keyType: constants_1.KeyType.ED25519, data: publicKey });\n this.secretKey = (0, utils_1.baseEncode)(secretKey);\n this.extendedSecretKey = extendedSecretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const secretKey = (0, randombytes_1.default)(constants_1.KeySize.SECRET_KEY);\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n const extendedSecretKey = new Uint8Array([...secretKey, ...publicKey]);\n return new KeyPairEd25519((0, utils_1.baseEncode)(extendedSecretKey));\n }\n /**\n * Signs a message using the key pair's secret key.\n * @param message The message to be signed.\n * @returns {Signature} The signature object containing the signature and the public key.\n */\n sign(message) {\n const signature = ed25519_1.ed25519.sign(message, (0, utils_1.baseDecode)(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n /**\n * Verifies the signature of a message using the key pair's public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n return this.publicKey.verify(message, signature);\n }\n /**\n * Returns a string representation of the key pair in the format 'ed25519:[extendedSecretKey]'.\n * @returns {string} The string representation of the key pair.\n */\n toString() {\n return `ed25519:${this.extendedSecretKey}`;\n }\n /**\n * Retrieves the public key associated with the key pair.\n * @returns {PublicKey} The public key.\n */\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst constants_1 = require(\"./constants\");\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case constants_1.KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return constants_1.KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends types_1.Assignable {\n /**\n * Creates a PublicKey instance from a string or an existing PublicKey instance.\n * @param value The string or PublicKey instance to create a PublicKey from.\n * @returns {PublicKey} The PublicKey instance.\n */\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n /**\n * Creates a PublicKey instance from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {PublicKey} The PublicKey instance created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n let publicKey;\n let keyType = constants_1.KeyType.ED25519;\n if (parts.length === 1) {\n publicKey = parts[0];\n }\n else if (parts.length === 2) {\n publicKey = parts[1];\n keyType = str_to_key_type(parts[0]);\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n const decodedPublicKey = (0, utils_1.baseDecode)(publicKey);\n if (decodedPublicKey.length !== constants_1.KeySize.SECRET_KEY) {\n throw new Error(`Invalid public key size (${decodedPublicKey.length}), must be ${constants_1.KeySize.SECRET_KEY}`);\n }\n return new PublicKey({ keyType, data: decodedPublicKey });\n }\n /**\n * Returns a string representation of the public key.\n * @returns {string} The string representation of the public key.\n */\n toString() {\n return `${key_type_to_str(this.keyType)}:${(0, utils_1.baseEncode)(this.data)}`;\n }\n /**\n * Verifies a message signature using the public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n switch (this.keyType) {\n case constants_1.KeyType.ED25519: return ed25519_1.ed25519.verify(signature, message, this.data);\n default: throw new Error(`Unknown key type ${this.keyType}`);\n }\n }\n}\nexports.PublicKey = PublicKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = BigInt('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = BigInt(10) ** BigInt(exports.NEAR_NOMINATION_EXP);\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = BigInt(10);\nfor (let i = 0, offset = BigInt(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset * BN10) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n let balanceBN = BigInt(balance);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN += ROUNDING_OFFSETS[roundingExp];\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || \"0\";\n const fractionStr = balance\n .substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, \"0\")\n .substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split(\".\");\n const wholePart = split[0];\n const fracPart = split[1] || \"\";\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, \"0\"));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, \"\").trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, \"\");\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, \"\");\n if (value === \"\") {\n return \"0\";\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, \"$1,$2\");\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBigIntAsc = void 0;\nfunction sortBigIntAsc(a, b) {\n return (a < b ? -1 : a > b ? 1 : 0);\n}\nexports.sortBigIntAsc = sortBigIntAsc;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst utils_1 = require(\"./utils\");\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const num = BigInt(numSeats);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (stakesSum < num) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = BigInt(1), right = stakesSum + BigInt(1);\n while (left !== right - BigInt(1)) {\n const mid = (left + right) / BigInt(2);\n let found = false;\n let currentSum = BigInt(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum + (stakes[i] / mid);\n if (currentSum >= num) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (validators.length < maxNumberOfSeats) {\n return stakesSum * BigInt(minimumStakeRatio[0]) / BigInt(minimumStakeRatio[1]);\n }\n else {\n return stakes[0] + BigInt(1);\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exponentialBackoff = void 0;\nfunction exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = yield getResult();\n if (result) {\n return result;\n }\n yield sleep(waitTime);\n waitTime *= waitBackoff;\n }\n return null;\n });\n}\nexports.exponentialBackoff = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FailoverRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link FailoverRpcProvider} client class\n * which can be used to interact with multiple [NEAR RPC APIs](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst provider_1 = require(\"./provider\");\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass FailoverRpcProvider extends provider_1.Provider {\n /**\n * @param providers list of providers\n */\n constructor(providers) {\n super();\n if (providers.length === 0) {\n throw new Error('At least one provider must be specified');\n }\n this.providers = providers;\n this.currentProviderIndex = 0;\n }\n switchToNextProvider() {\n if (this.providers.length === 1)\n return;\n if (this.providers.length - 1 <= this.currentProviderIndex) {\n this.currentProviderIndex = 0;\n }\n else {\n this.currentProviderIndex += 1;\n }\n utils_1.Logger.debug(`Switched to provider at the index ${this.currentProviderIndex}`);\n }\n get currentProvider() {\n const provider = this.providers[this.currentProviderIndex];\n if (!provider)\n throw new Error(`Provider wasn't found at index ${this.currentProviderIndex}`);\n return provider;\n }\n withBackoff(getResult) {\n return __awaiter(this, void 0, void 0, function* () {\n for (let i = 0; i < this.providers.length; i++) {\n try {\n // each provider implements own retry logic\n const result = yield getResult(this.currentProvider);\n if (result)\n return result;\n }\n catch (_a) {\n this.switchToNextProvider();\n }\n }\n throw new types_1.TypedError(`Exceeded ${this.providers.length} providers to execute request`, 'RetriesExceeded');\n });\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.status());\n });\n }\n sendTransactionUntil(signedTransaction, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.sendTransactionUntil(signedTransaction, waitUntil));\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.sendTransaction(signedTransaction));\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.sendTransactionAsync(signedTransaction));\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n */\n txStatus(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.txStatus(txHash, accountId, waitUntil));\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.txStatusReceipts(txHash, accountId, waitUntil));\n });\n }\n query(paramsOrPath, data) {\n return __awaiter(this, void 0, void 0, function* () {\n if (data) {\n return this.withBackoff((currentProvider) => currentProvider.query(paramsOrPath, data));\n }\n return this.withBackoff((currentProvider) => currentProvider.query(paramsOrPath));\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.block(blockQuery));\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.blockChanges(blockQuery));\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.chunk(chunkId));\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.validators(blockId));\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.experimental_protocolConfig(blockReference));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.lightClientProof(request));\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.nextLightClientBlock(request));\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.accessKeyChanges(accountIdArray, blockQuery));\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.singleAccessKeyChanges(accessKeyArray, blockQuery));\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.accountChanges(accountIdArray, blockQuery));\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.contractStateChanges(accountIdArray, blockQuery, keyPrefix));\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.contractCodeChanges(accountIdArray, blockQuery));\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.withBackoff((currentProvider) => currentProvider.gasPrice(blockId));\n });\n }\n}\nexports.FailoverRpcProvider = FailoverRpcProvider;\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 });\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst http_1 = __importDefault(require(\"http\"));\nconst https_1 = __importDefault(require(\"https\"));\nconst httpAgent = new http_1.default.Agent({ keepAlive: true });\nconst httpsAgent = new https_1.default.Agent({ keepAlive: true });\nfunction agent(_parsedURL) {\n if (_parsedURL.protocol === 'http:') {\n return httpAgent;\n }\n else {\n return httpsAgent;\n }\n}\nfunction default_1(resource, init) {\n return (0, node_fetch_1.default)(resource, Object.assign({ agent: agent(new URL(resource.toString())) }, init));\n}\nexports.default = default_1;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\n/**\n * Performs an HTTP request to a specified URL or connection and returns the parsed JSON response.\n * @param connectionInfoOrUrl The connection information or URL for the HTTP request.\n * @param json The JSON payload to be included in the request body for POST requests.\n * @returns A Promise that resolves to the parsed JSON response from the HTTP request.\n */\nfunction fetchJson(connectionInfoOrUrl, json) {\n return __awaiter(this, void 0, void 0, function* () {\n let connectionInfo = { url: null };\n if (typeof (connectionInfoOrUrl) === 'string') {\n connectionInfo.url = connectionInfoOrUrl;\n }\n else {\n connectionInfo = connectionInfoOrUrl;\n }\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield ((_a = global.fetch) !== null && _a !== void 0 ? _a : (yield Promise.resolve().then(() => __importStar(require('./fetch')))).default)(connectionInfo.url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: Object.assign(Object.assign({}, connectionInfo.headers), { 'Content-Type': 'application/json' })\n });\n if (!response.ok) {\n if (response.status === 503) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as it's not available now`);\n return null;\n }\n else if (response.status === 408) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} as the previous connection was unused for some time`);\n return null;\n }\n throw (0, http_errors_1.default)(response.status, yield response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n utils_1.Logger.warn(`Retrying HTTP request for ${connectionInfo.url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n }));\n if (!response) {\n throw new types_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${connectionInfo.url}.`, 'RetriesExceeded');\n }\n return yield response.json();\n });\n}\nexports.fetchJson = fetchJson;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = exports.Provider = exports.FailoverRpcProvider = exports.JsonRpcProvider = exports.exponentialBackoff = void 0;\nvar exponential_backoff_1 = require(\"./exponential-backoff\");\nObject.defineProperty(exports, \"exponentialBackoff\", { enumerable: true, get: function () { return exponential_backoff_1.exponentialBackoff; } });\nvar json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nvar failover_rpc_provider_1 = require(\"./failover-rpc-provider\");\nObject.defineProperty(exports, \"FailoverRpcProvider\", { enumerable: true, get: function () { return failover_rpc_provider_1.FailoverRpcProvider; } });\nvar provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nvar fetch_json_1 = require(\"./fetch_json\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return fetch_json_1.fetchJson; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = void 0;\n/**\n * @module\n * @description\n * This module contains the {@link JsonRpcProvider} client class\n * which can be used to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see {@link \"@near-js/types\".provider | provider} for a list of request and response types\n */\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst exponential_backoff_1 = require(\"./exponential-backoff\");\nconst provider_1 = require(\"./provider\");\nconst fetch_json_1 = require(\"./fetch_json\");\n/** @hidden */\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\n/**\n * Client class to interact with the [NEAR RPC API](https://docs.near.org/api/rpc/introduction).\n * @see [https://github.com/near/nearcore/tree/master/chain/jsonrpc](https://github.com/near/nearcore/tree/master/chain/jsonrpc)\n */\nclass JsonRpcProvider extends provider_1.Provider {\n /**\n * @param connectionInfo Connection info\n */\n constructor(connectionInfo, options) {\n super();\n this.connection = connectionInfo || { url: '' };\n const defaultOptions = {\n retries: REQUEST_RETRY_NUMBER,\n wait: REQUEST_RETRY_WAIT,\n backoff: REQUEST_RETRY_WAIT_BACKOFF\n };\n this.options = Object.assign({}, defaultOptions, options);\n }\n /**\n * Gets the RPC's status\n * @see [https://docs.near.org/docs/develop/front-end/rpc#general-validator-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n */\n status() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('status', []);\n });\n }\n /**\n * Sends a signed transaction to the RPC\n *\n * @param signedTransaction The signed transaction being sent\n * @param waitUntil\n */\n sendTransactionUntil(signedTransaction, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n const bytes = (0, transactions_1.encodeTransaction)(signedTransaction);\n return this.sendJsonRpc('send_tx', { signed_tx_base64: Buffer.from(bytes).toString('base64'), wait_until: waitUntil });\n });\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see [https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param signedTransaction The signed transaction being sent\n */\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendTransactionUntil(signedTransaction, 'EXECUTED_OPTIMISTIC');\n });\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise}\n */\n sendTransactionAsync(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendTransactionUntil(signedTransaction, 'NONE');\n });\n }\n /**\n * Gets a transaction's status from the RPC\n * @see [https://docs.near.org/docs/develop/front-end/rpc#transaction-status](https://docs.near.org/docs/develop/front-end/rpc#general-validator-status)\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n * @param waitUntil\n */\n txStatus(txHash, accountId, waitUntil = 'EXECUTED_OPTIMISTIC') {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.txStatusString(txHash, accountId, waitUntil);\n }\n else {\n return this.txStatusUint8Array(txHash, accountId, waitUntil);\n }\n });\n }\n txStatusUint8Array(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', { tx_hash: (0, utils_1.baseEncode)(txHash), sender_account_id: accountId, wait_until: waitUntil });\n });\n }\n txStatusString(txHash, accountId, waitUntil) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('tx', { tx_hash: txHash, sender_account_id: accountId, wait_until: waitUntil });\n });\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @param waitUntil\n * @returns {Promise}\n */\n txStatusReceipts(txHash, accountId, waitUntil = 'EXECUTED_OPTIMISTIC') {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof txHash === 'string') {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', { tx_hash: txHash, sender_account_id: accountId, wait_until: waitUntil });\n }\n else {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', { tx_hash: (0, utils_1.baseEncode)(txHash), sender_account_id: accountId, wait_until: waitUntil });\n }\n });\n }\n /**\n * Query the RPC by passing an {@link \"@near-js/types\".provider/request.RpcQueryRequest | RpcQueryRequest }\n * @see [https://docs.near.org/api/rpc/contracts](https://docs.near.org/api/rpc/contracts)\n *\n * @typeParam T the shape of the returned query response\n */\n query(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let result;\n if (args.length === 1) {\n const _a = args[0], { block_id, blockId } = _a, otherParams = __rest(_a, [\"block_id\", \"blockId\"]);\n result = yield this.sendJsonRpc('query', Object.assign(Object.assign({}, otherParams), { block_id: block_id || blockId }));\n }\n else {\n const [path, data] = args;\n result = yield this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new types_1.TypedError(`Querying failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, (0, utils_1.getErrorTypeFromErrorMessage)(result.error, result.error.name));\n }\n return result;\n });\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n block(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n */\n blockChanges(blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes_in_block', { block_id: blockId, finality });\n });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see [https://docs.near.org/api/rpc/block-chunk](https://docs.near.org/api/rpc/block-chunk)\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n chunk(chunkId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('chunk', [chunkId]);\n });\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see [https://docs.near.org/api/rpc/network#validation-status](https://docs.near.org/api/rpc/network#validation-status)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n validators(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.sendJsonRpc('validators', [blockId]);\n });\n }\n /**\n * Gets the protocol config at a block from RPC\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n experimental_protocolConfig(blockReference) {\n return __awaiter(this, void 0, void 0, function* () {\n const _a = blockReference, { blockId } = _a, otherParams = __rest(_a, [\"blockId\"]);\n return yield this.sendJsonRpc('EXPERIMENTAL_protocol_config', Object.assign(Object.assign({}, otherParams), { block_id: blockId }));\n });\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see [https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof](https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof)\n */\n lightClientProof(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n });\n }\n /**\n * Returns the next light client block as far in the future as possible from the last known hash\n * to still be able to validate from that hash. This will either return the last block of the\n * next epoch, or the last final known block.\n *\n * @see [https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block](https://github.com/near/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-block)\n */\n nextLightClientBlock(request) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('next_light_client_block', request);\n });\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise}\n */\n accessKeyChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'all_access_key_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise}\n */\n singleAccessKeyChanges(accessKeyArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'single_access_key_changes',\n keys: accessKeyArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise}\n */\n accountChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'account_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise}\n */\n contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'data_changes',\n account_ids: accountIdArray,\n key_prefix_base64: keyPrefix,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise}\n */\n contractCodeChanges(accountIdArray, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'contract_code_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see [https://docs.near.org/api/rpc/gas](https://docs.near.org/api/rpc/gas)\n *\n * @param blockId Block hash or height, or null for latest.\n */\n gasPrice(blockId) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.sendJsonRpc('gas_price', [blockId]);\n });\n }\n /**\n * Directly call the RPC specifying the method and params\n *\n * @param method RPC method\n * @param params Parameters to the method\n */\n sendJsonRpc(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield (0, exponential_backoff_1.exponentialBackoff)(this.options.wait, this.options.retries, this.options.backoff, () => __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = yield (0, fetch_json_1.fetchJson)(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new types_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw (0, utils_1.parseRpcError)(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new types_1.TypedError(errorMessage, 'TimeoutError');\n }\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.error.data, '');\n if (errorType) {\n throw new types_1.TypedError((0, utils_1.formatError)(errorType, params), errorType);\n }\n throw new types_1.TypedError(errorMessage, response.error.name);\n }\n }\n else if (typeof ((_a = response.result) === null || _a === void 0 ? void 0 : _a.error) === 'string') {\n const errorType = (0, utils_1.getErrorTypeFromErrorMessage)(response.result.error, '');\n if (errorType) {\n throw new utils_1.ServerError((0, utils_1.formatError)(errorType, params), errorType);\n }\n }\n // Success when response.error is not exist\n return response;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n utils_1.Logger.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n }));\n const { result } = response;\n // From jsonrpc spec:\n // result\n // This member is REQUIRED on success.\n // This member MUST NOT exist if there was an error invoking the method.\n if (typeof result === 'undefined') {\n throw new types_1.TypedError(`Exceeded ${this.options.retries} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n });\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Provider = void 0;\n/** @hidden */\nclass Provider {\n}\nexports.Provider = Provider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.actionCreators = exports.stringifyJsonOrBytes = void 0;\nconst actions_1 = require(\"./actions\");\n/**\n * Creates a full access key with full access permissions.\n * @returns A new full access key.\n */\nfunction fullAccessKey() {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n fullAccess: new actions_1.FullAccessPermission({}),\n }),\n });\n}\n/**\n * Creates an access key with function call permission for a specific receiver and method names.\n * @param receiverId The NEAR account ID of the function call receiver.\n * @param methodNames An array of method names allowed for function calls.\n * @param allowance An optional allowance (maximum amount) for the function call. Default: Unlimited.\n * @returns A new access key with function call permission.\n */\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n functionCall: new actions_1.FunctionCallPermission({\n receiverId,\n allowance,\n methodNames,\n }),\n }),\n });\n}\n/**\n * Creates a new action for creating a new NEAR account.\n * @returns A new action for creating a new account.\n */\nfunction createAccount() {\n return new actions_1.Action({ createAccount: new actions_1.CreateAccount({}) });\n}\n/**\n * Creates a new action for deploying a contract with the provided code.\n * @param code The Uint8Array representing the code of the contract.\n * @returns A new action for deploying a contract.\n */\nfunction deployContract(code) {\n return new actions_1.Action({ deployContract: new actions_1.DeployContract({ code }) });\n}\n/**\n * Converts an input argument to a Buffer, handling cases for both JSON and Uint8Array.\n * @param args The input argument, either JSON object or Uint8Array.\n * @returns A Buffer representation of the input argument.\n */\nfunction stringifyJsonOrBytes(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n return isUint8Array ? args : Buffer.from(JSON.stringify(args));\n}\nexports.stringifyJsonOrBytes = stringifyJsonOrBytes;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @param stringify Convert input arguments into bytes array.\n * @param jsContract Is contract from JS SDK, skips stringification of arguments.\n */\nfunction functionCall(methodName, args, gas = BigInt(0), deposit = BigInt(0), stringify = stringifyJsonOrBytes, jsContract = false) {\n if (jsContract) {\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({ methodName, args, gas, deposit }),\n });\n }\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({\n methodName,\n args: stringify(args),\n gas,\n deposit,\n }),\n });\n}\n/**\n * Creates a new action for transferring funds, optionally specifying a deposit amount.\n * @param deposit The amount to be deposited along with the transfer. Default: 0.\n * @returns A new action for transferring funds.\n */\nfunction transfer(deposit = BigInt(0)) {\n return new actions_1.Action({ transfer: new actions_1.Transfer({ deposit }) });\n}\n/**\n * Creates a new action for staking tokens, specifying the stake amount and public key.\n * @param stake The amount to be staked. Default: 0.\n * @param publicKey The public key associated with the staking action.\n * @returns A new action for staking tokens.\n */\nfunction stake(stake = BigInt(0), publicKey) {\n return new actions_1.Action({ stake: new actions_1.Stake({ stake, publicKey }) });\n}\n/**\n * Creates a new action for adding a public key with a specified access key.\n * @param publicKey The public key to be added.\n * @param accessKey The access key associated with the added public key.\n * @returns A new action for adding a public key.\n */\nfunction addKey(publicKey, accessKey) {\n return new actions_1.Action({ addKey: new actions_1.AddKey({ publicKey, accessKey }) });\n}\n/**\n * Creates a new action for deleting a public key.\n * @param publicKey The public key to be deleted.\n * @returns A new action for deleting a public key.\n */\nfunction deleteKey(publicKey) {\n return new actions_1.Action({ deleteKey: new actions_1.DeleteKey({ publicKey }) });\n}\n/**\n * Creates a new action for deleting an account with the specified beneficiary ID.\n * @param beneficiaryId The NEAR account ID of the beneficiary.\n * @returns A new action for deleting an account.\n */\nfunction deleteAccount(beneficiaryId) {\n return new actions_1.Action({ deleteAccount: new actions_1.DeleteAccount({ beneficiaryId }) });\n}\n/**\n * Creates a new action for a signed delegation, specifying the delegate action and signature.\n * @param delegateAction The delegate action to be performed.\n * @param signature The signature associated with the delegate action.\n * @returns A new action for a signed delegation.\n */\nfunction signedDelegate({ delegateAction, signature, }) {\n return new actions_1.Action({\n signedDelegate: new actions_1.SignedDelegate({ delegateAction, signature }),\n });\n}\nexports.actionCreators = {\n addKey,\n createAccount,\n deleteAccount,\n deleteKey,\n deployContract,\n fullAccessKey,\n functionCall,\n functionCallAccessKey,\n signedDelegate,\n stake,\n transfer,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.SignedDelegate = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nclass FunctionCallPermission extends types_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends types_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends types_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nclass IAction extends types_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nclass SignedDelegate extends IAction {\n}\nexports.SignedDelegate = SignedDelegate;\n/**\n * Contains a list of the valid transaction Actions available with this API\n * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec}\n */\nclass Action extends Enum {\n}\nexports.Action = Action;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransaction = void 0;\nconst schema_1 = require(\"./schema\");\n/**\n * Creates a new transaction object with the provided parameters.\n * @param signerId The NEAR account ID of the transaction signer.\n * @param publicKey The public key associated with the signer.\n * @param receiverId The NEAR account ID of the transaction receiver.\n * @param nonce The nonce value for the transaction, represented as a BN, string, or number.\n * @param actions An array of transaction actions to be performed.\n * @param blockHash The hash of the block where the transaction will be included.\n * @returns A new transaction object initialized with the provided parameters.\n */\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n const txNonce = typeof nonce === 'bigint' ? nonce : BigInt(nonce);\n return new schema_1.Transaction({\n signerId,\n publicKey,\n nonce: txNonce,\n receiverId,\n actions,\n blockHash,\n });\n}\nexports.createTransaction = createTransaction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDelegateAction = exports.DelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst action_creators_1 = require(\"./action_creators\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer, } = action_creators_1.actionCreators;\nclass DelegateAction extends types_1.Assignable {\n}\nexports.DelegateAction = DelegateAction;\n/**\n * Compose a delegate action for inclusion with a meta transaction signed on the sender's behalf\n * @param actions The set of actions to be included in the meta transaction\n * @param maxBlockHeight The maximum block height for which this action can be executed as part of a transaction\n * @param nonce Current nonce on the access key used to sign the delegate action\n * @param publicKey Public key for the access key used to sign the delegate action\n * @param receiverId Account ID for the intended receiver of the meta transaction\n * @param senderId Account ID for the intended signer of the delegate action\n */\nfunction buildDelegateAction({ actions, maxBlockHeight, nonce, publicKey, receiverId, senderId, }) {\n return new DelegateAction({\n senderId,\n receiverId,\n actions: actions.map((a) => {\n // @ts-expect-error type workaround\n if (!a.type && !a.params) {\n return a;\n }\n // @ts-expect-error type workaround\n switch (a.type) {\n case 'AddKey': {\n // @ts-expect-error type workaround\n const { publicKey, accessKey } = a.params;\n return addKey(publicKey, accessKey);\n }\n case 'CreateAccount': {\n // @ts-expect-error type workaround\n return createAccount(a.params.createAccount);\n }\n case 'DeleteAccount': {\n // @ts-expect-error type workaround\n return deleteAccount(a.params.deleteAccount);\n }\n case 'DeleteKey': {\n // @ts-expect-error type workaround\n return deleteKey(a.params.publicKey);\n }\n case 'DeployContract': {\n // @ts-expect-error type workaround\n return deployContract(a.params.code);\n }\n case 'FunctionCall': {\n // @ts-expect-error type workaround\n const { methodName, args, gas, deposit } = a.params;\n return functionCall(methodName, args, gas, deposit);\n }\n case 'Stake': {\n // @ts-expect-error type workaround\n return stake(a.params.stake, a.params.publicKey);\n }\n case 'Transfer': {\n // @ts-expect-error type workaround\n const { deposit } = a.params;\n return transfer(deposit);\n }\n }\n throw new Error('Unrecognized action');\n }),\n nonce,\n maxBlockHeight,\n publicKey,\n });\n}\nexports.buildDelegateAction = buildDelegateAction;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./action_creators\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./create_transaction\"), exports);\n__exportStar(require(\"./delegate\"), exports);\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./sign\"), exports);\n__exportStar(require(\"./signature\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelegateActionPrefix = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst ACTIONABLE_MESSAGE_BASE = Math.pow(2, 30);\n// const NON_ACTIONABLE_MESSAGE_BASE = Math.pow(2, 31);\n/** The set of NEPs for which an [NEP-461](https://github.com/near/NEPs/pull/461) prefix is required on the message prior to hashing **/\nconst NEP = {\n MetaTransactions: 366,\n};\n/** Base class for NEP message prefixes **/\nclass NEPPrefix extends types_1.Assignable {\n}\n/** Class for constructing prefixes on actionable (on-chain) messages **/\nclass ActionableMessagePrefix extends NEPPrefix {\n /** Given the NEP number, set the prefix using 2^30 as the offset **/\n constructor(prefix) {\n super({ prefix: ACTIONABLE_MESSAGE_BASE + prefix });\n }\n}\n/**\n * Class for constructing prefixes on non-actionable (off-chain) messages\n * @todo uncomment when off-chain messages are supported\n * **/\n// abstract class NonActionableMessagePrefix extends NEPPrefix {\n// /** Given the NEP number, set the prefix using 2^31 as the offset **/\n// protected constructor(prefix: number) {\n// super({ prefix: NON_ACTIONABLE_MESSAGE_BASE + prefix });\n// }\n// }\n/** Prefix for delegate actions whose signatures must always be distinguishable from valid transaction signatures **/\nclass DelegateActionPrefix extends ActionableMessagePrefix {\n constructor() { super(NEP.MetaTransactions); }\n}\nexports.DelegateActionPrefix = DelegateActionPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCHEMA = exports.SignedTransaction = exports.Transaction = exports.decodeSignedTransaction = exports.decodeTransaction = exports.encodeTransaction = exports.encodeSignedDelegate = exports.encodeDelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst borsh_1 = require(\"borsh\");\nconst prefix_1 = require(\"./prefix\");\n/**\n * Borsh-encode a delegate action for inclusion as an action within a meta transaction\n * NB per NEP-461 this requires a Borsh-serialized prefix specific to delegate actions, ensuring\n * signed delegate actions may never be identical to signed transactions with the same fields\n * @param delegateAction Delegate action to be signed by the meta transaction sender\n */\nfunction encodeDelegateAction(delegateAction) {\n return new Uint8Array([\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateActionPrefix, new prefix_1.DelegateActionPrefix()),\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateAction, delegateAction),\n ]);\n}\nexports.encodeDelegateAction = encodeDelegateAction;\n/**\n * Borsh-encode a signed delegate for validation and execution by a relayer\n * @param signedDelegate Signed delegate to be executed in a meta transaction\n */\nfunction encodeSignedDelegate(signedDelegate) {\n return (0, borsh_1.serialize)(exports.SCHEMA.SignedDelegate, signedDelegate);\n}\nexports.encodeSignedDelegate = encodeSignedDelegate;\n/**\n* Borsh-encode a transaction or signed transaction into a serialized form.\n* @param transaction The transaction or signed transaction object to be encoded.\n* @returns A serialized representation of the input transaction.\n*/\nfunction encodeTransaction(transaction) {\n const schema = transaction instanceof SignedTransaction ? exports.SCHEMA.SignedTransaction : exports.SCHEMA.Transaction;\n return (0, borsh_1.serialize)(schema, transaction);\n}\nexports.encodeTransaction = encodeTransaction;\n/**\n * Borsh-decode a Transaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeTransaction(bytes) {\n return new Transaction((0, borsh_1.deserialize)(exports.SCHEMA.Transaction, bytes));\n}\nexports.decodeTransaction = decodeTransaction;\n/**\n * Borsh-decode a SignedTransaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeSignedTransaction(bytes) {\n return new SignedTransaction((0, borsh_1.deserialize)(exports.SCHEMA.SignedTransaction, bytes));\n}\nexports.decodeSignedTransaction = decodeSignedTransaction;\nclass Transaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeTransaction(bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeSignedTransaction(bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\nexports.SCHEMA = new class BorshSchema {\n constructor() {\n this.Signature = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 64 } },\n }\n };\n this.PublicKey = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 32 } },\n }\n };\n this.FunctionCallPermission = {\n struct: {\n allowance: { option: 'u128' },\n receiverId: 'string',\n methodNames: { array: { type: 'string' } },\n }\n };\n this.FullAccessPermission = {\n struct: {}\n };\n this.AccessKeyPermission = {\n enum: [\n { struct: { functionCall: this.FunctionCallPermission } },\n { struct: { fullAccess: this.FullAccessPermission } },\n ]\n };\n this.AccessKey = {\n struct: {\n nonce: 'u64',\n permission: this.AccessKeyPermission,\n }\n };\n this.CreateAccount = {\n struct: {}\n };\n this.DeployContract = {\n struct: {\n code: { array: { type: 'u8' } },\n }\n };\n this.FunctionCall = {\n struct: {\n methodName: 'string',\n args: { array: { type: 'u8' } },\n gas: 'u64',\n deposit: 'u128',\n }\n };\n this.Transfer = {\n struct: {\n deposit: 'u128',\n }\n };\n this.Stake = {\n struct: {\n stake: 'u128',\n publicKey: this.PublicKey,\n }\n };\n this.AddKey = {\n struct: {\n publicKey: this.PublicKey,\n accessKey: this.AccessKey,\n }\n };\n this.DeleteKey = {\n struct: {\n publicKey: this.PublicKey,\n }\n };\n this.DeleteAccount = {\n struct: {\n beneficiaryId: 'string',\n }\n };\n this.DelegateActionPrefix = {\n struct: {\n prefix: 'u32',\n }\n };\n this.ClassicActions = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n ]\n };\n this.DelegateAction = {\n struct: {\n senderId: 'string',\n receiverId: 'string',\n actions: { array: { type: this.ClassicActions } },\n nonce: 'u64',\n maxBlockHeight: 'u64',\n publicKey: this.PublicKey,\n }\n };\n this.SignedDelegate = {\n struct: {\n delegateAction: this.DelegateAction,\n signature: this.Signature,\n }\n };\n this.Action = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n { struct: { signedDelegate: this.SignedDelegate } },\n ]\n };\n this.Transaction = {\n struct: {\n signerId: 'string',\n publicKey: this.PublicKey,\n nonce: 'u64',\n receiverId: 'string',\n blockHash: { array: { type: 'u8', len: 32 } },\n actions: { array: { type: this.Action } },\n }\n };\n this.SignedTransaction = {\n struct: {\n transaction: this.Transaction,\n signature: this.Signature,\n }\n };\n }\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signDelegateAction = exports.signTransaction = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst actions_1 = require(\"./actions\");\nconst create_transaction_1 = require(\"./create_transaction\");\nconst schema_1 = require(\"./schema\");\nconst signature_1 = require(\"./signature\");\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nfunction signTransactionObject(transaction, signer, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeTransaction)(transaction);\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n const signature = yield signer.signMessage(message, accountId, networkId);\n const signedTx = new schema_1.SignedTransaction({\n transaction,\n signature: new signature_1.Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n });\n}\nfunction signTransaction(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (args[0].constructor === schema_1.Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = yield signer.getPublicKey(accountId, networkId);\n const transaction = (0, create_transaction_1.createTransaction)(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n });\n}\nexports.signTransaction = signTransaction;\n/**\n * Sign a delegate action\n * @options SignDelegate options\n * @param options.delegateAction Delegate action to be signed by the meta transaction sender\n * @param options.signer Signer instance for the meta transaction sender\n */\nfunction signDelegateAction({ delegateAction, signer }) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeDelegateAction)(delegateAction);\n const signature = yield signer.sign(message);\n const signedDelegateAction = new actions_1.SignedDelegate({\n delegateAction,\n signature: new signature_1.Signature({\n keyType: delegateAction.publicKey.keyType,\n data: signature,\n }),\n });\n return {\n hash: new Uint8Array((0, sha256_1.sha256)(message)),\n signedDelegateAction,\n };\n });\n}\nexports.signDelegateAction = signDelegateAction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signature = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Signature extends types_1.Assignable {\n}\nexports.Signature = Signature;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = BigInt('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = BigInt(10) ** BigInt(exports.NEAR_NOMINATION_EXP);\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = BigInt(10);\nfor (let i = 0, offset = BigInt(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset * BN10) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n let balanceBN = BigInt(balance);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN += ROUNDING_OFFSETS[roundingExp];\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || \"0\";\n const fractionStr = balance\n .substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, \"0\")\n .substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split(\".\");\n const wholePart = split[0];\n const fracPart = split[1] || \"\";\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, \"0\"));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, \"\").trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, \"\");\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, \"\");\n if (value === \"\") {\n return \"0\";\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, \"$1,$2\");\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBigIntAsc = void 0;\nfunction sortBigIntAsc(a, b) {\n return (a < b ? -1 : a > b ? 1 : 0);\n}\nexports.sortBigIntAsc = sortBigIntAsc;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst utils_1 = require(\"./utils\");\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const num = BigInt(numSeats);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (stakesSum < num) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = BigInt(1), right = stakesSum + BigInt(1);\n while (left !== right - BigInt(1)) {\n const mid = (left + right) / BigInt(2);\n let found = false;\n let currentSum = BigInt(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum + (stakes[i] / mid);\n if (currentSum >= num) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (validators.length < maxNumberOfSeats) {\n return stakesSum * BigInt(minimumStakeRatio[0]) / BigInt(minimumStakeRatio[1]);\n }\n else {\n return stakes[0] + BigInt(1);\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst signer_1 = require(\"./signer\");\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends signer_1.Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static fromKeyPair(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyStore = new keystores_1.InMemoryKeyStore();\n yield keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n });\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n createKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = crypto_1.KeyPair.fromRandom('ed25519');\n yield this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n });\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise} Returns the public key or null if not found\n */\n getPublicKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n });\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n signMessage(message, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n });\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar in_memory_signer_1 = require(\"./in_memory_signer\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return in_memory_signer_1.InMemorySigner; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = void 0;\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystore_1 = require(\"./keystore\");\n/**\n * Simple in-memory keystore for mainly for testing purposes.\n *\n * @see [https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store](https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store)\n * @example\n * ```js\n * import { connect, keyStores, utils } from 'near-api-js';\n *\n * const privateKey = '.......';\n * const keyPair = utils.KeyPair.fromString(privateKey);\n *\n * const keyStore = new keyStores.InMemoryKeyStore();\n * keyStore.setKey('testnet', 'example-account.testnet', keyPair);\n *\n * const config = {\n * keyStore, // instance of InMemoryKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Stores a {@link KeyPair} in in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n });\n }\n /**\n * Gets a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return crypto_1.KeyPair.fromString(value);\n });\n }\n /**\n * Removes a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n delete this.keys[`${accountId}:${networkId}`];\n });\n }\n /**\n * Removes all {@link KeyPair} from in-memory storage\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n this.keys = {};\n });\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n });\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n });\n }\n /** @hidden */\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.KeyStore = exports.InMemoryKeyStore = void 0;\nvar in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nvar keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nvar merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * KeyStores are passed to {@link \"@near-js/wallet-account\".near.Near | Near} via {@link \"@near-js/wallet-account\".near.NearConfig | NearConfig}\n * and are used by the {@link \"@near-js/signers\".in_memory_signer.InMemorySigner | InMemorySigner} to sign transactions.\n *\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores read calls are attempted from start to end of array\n * @param options KeyStore options\n * @param options.writeKeyStoreIndex the keystore index that will receive all write calls\n */\n constructor(keyStores, options = { writeKeyStoreIndex: 0 }) {\n super();\n this.options = options;\n this.keyStores = keyStores;\n }\n /**\n * Store a {@link KeyPair} to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n setKey(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.keyStores[this.options.writeKeyStoreIndex].setKey(networkId, accountId, keyPair);\n });\n }\n /**\n * Gets a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise}\n */\n getKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n const keyPair = yield keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n });\n }\n /**\n * Removes a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n removeKey(networkId, accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.removeKey(networkId, accountId);\n }\n });\n }\n /**\n * Removes all items from each key store\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n for (const keyStore of this.keyStores) {\n yield keyStore.clear();\n }\n });\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise}\n */\n getNetworks() {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of yield keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n });\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\n getAccounts(networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of yield keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n });\n }\n /** @hidden */\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\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.actionCreators = exports.stringifyJsonOrBytes = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst actions_1 = require(\"./actions\");\n/**\n * Creates a full access key with full access permissions.\n * @returns A new full access key.\n */\nfunction fullAccessKey() {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n fullAccess: new actions_1.FullAccessPermission({}),\n })\n });\n}\n/**\n * Creates an access key with function call permission for a specific receiver and method names.\n * @param receiverId The NEAR account ID of the function call receiver.\n * @param methodNames An array of method names allowed for function calls.\n * @param allowance An optional allowance (maximum amount) for the function call. Default: Unlimited.\n * @returns A new access key with function call permission.\n */\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n functionCall: new actions_1.FunctionCallPermission({ receiverId, allowance, methodNames }),\n })\n });\n}\n/**\n * Creates a new action for creating a new NEAR account.\n * @returns A new action for creating a new account.\n */\nfunction createAccount() {\n return new actions_1.Action({ createAccount: new actions_1.CreateAccount({}) });\n}\n/**\n * Creates a new action for deploying a contract with the provided code.\n * @param code The Uint8Array representing the code of the contract.\n * @returns A new action for deploying a contract.\n */\nfunction deployContract(code) {\n return new actions_1.Action({ deployContract: new actions_1.DeployContract({ code }) });\n}\n/**\n * Converts an input argument to a Buffer, handling cases for both JSON and Uint8Array.\n * @param args The input argument, either JSON object or Uint8Array.\n * @returns A Buffer representation of the input argument.\n */\nfunction stringifyJsonOrBytes(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n return isUint8Array ? args : Buffer.from(JSON.stringify(args));\n}\nexports.stringifyJsonOrBytes = stringifyJsonOrBytes;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @param stringify Convert input arguments into bytes array.\n * @param jsContract Is contract from JS SDK, skips stringification of arguments.\n */\nfunction functionCall(methodName, args, gas = new bn_js_1.default(0), deposit = new bn_js_1.default(0), stringify = stringifyJsonOrBytes, jsContract = false) {\n if (jsContract) {\n return new actions_1.Action({ functionCall: new actions_1.FunctionCall({ methodName, args, gas, deposit }) });\n }\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({\n methodName,\n args: stringify(args),\n gas,\n deposit,\n }),\n });\n}\n/**\n * Creates a new action for transferring funds, optionally specifying a deposit amount.\n * @param deposit The amount to be deposited along with the transfer. Default: 0.\n * @returns A new action for transferring funds.\n */\nfunction transfer(deposit = new bn_js_1.default(0)) {\n return new actions_1.Action({ transfer: new actions_1.Transfer({ deposit }) });\n}\n/**\n * Creates a new action for staking tokens, specifying the stake amount and public key.\n * @param stake The amount to be staked. Default: 0.\n * @param publicKey The public key associated with the staking action.\n * @returns A new action for staking tokens.\n */\nfunction stake(stake = new bn_js_1.default(0), publicKey) {\n return new actions_1.Action({ stake: new actions_1.Stake({ stake, publicKey }) });\n}\n/**\n * Creates a new action for adding a public key with a specified access key.\n * @param publicKey The public key to be added.\n * @param accessKey The access key associated with the added public key.\n * @returns A new action for adding a public key.\n */\nfunction addKey(publicKey, accessKey) {\n return new actions_1.Action({ addKey: new actions_1.AddKey({ publicKey, accessKey }) });\n}\n/**\n * Creates a new action for deleting a public key.\n * @param publicKey The public key to be deleted.\n * @returns A new action for deleting a public key.\n */\nfunction deleteKey(publicKey) {\n return new actions_1.Action({ deleteKey: new actions_1.DeleteKey({ publicKey }) });\n}\n/**\n * Creates a new action for deleting an account with the specified beneficiary ID.\n * @param beneficiaryId The NEAR account ID of the beneficiary.\n * @returns A new action for deleting an account.\n */\nfunction deleteAccount(beneficiaryId) {\n return new actions_1.Action({ deleteAccount: new actions_1.DeleteAccount({ beneficiaryId }) });\n}\n/**\n * Creates a new action for a signed delegation, specifying the delegate action and signature.\n * @param delegateAction The delegate action to be performed.\n * @param signature The signature associated with the delegate action.\n * @returns A new action for a signed delegation.\n */\nfunction signedDelegate({ delegateAction, signature }) {\n return new actions_1.Action({ signedDelegate: new actions_1.SignedDelegate({ delegateAction, signature }) });\n}\nexports.actionCreators = {\n addKey,\n createAccount,\n deleteAccount,\n deleteKey,\n deployContract,\n fullAccessKey,\n functionCall,\n functionCallAccessKey,\n signedDelegate,\n stake,\n transfer,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.SignedDelegate = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nclass FunctionCallPermission extends types_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends types_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends types_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nclass IAction extends types_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nclass SignedDelegate extends IAction {\n}\nexports.SignedDelegate = SignedDelegate;\n/**\n * Contains a list of the valid transaction Actions available with this API\n * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec}\n */\nclass Action extends Enum {\n}\nexports.Action = Action;\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.createTransaction = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst schema_1 = require(\"./schema\");\n/**\n * Creates a new transaction object with the provided parameters.\n * @param signerId The NEAR account ID of the transaction signer.\n * @param publicKey The public key associated with the signer.\n * @param receiverId The NEAR account ID of the transaction receiver.\n * @param nonce The nonce value for the transaction, represented as a BN, string, or number.\n * @param actions An array of transaction actions to be performed.\n * @param blockHash The hash of the block where the transaction will be included.\n * @returns A new transaction object initialized with the provided parameters.\n */\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n return new schema_1.Transaction({ signerId, publicKey, nonce: new bn_js_1.default(nonce), receiverId, actions, blockHash });\n}\nexports.createTransaction = createTransaction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDelegateAction = exports.DelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst action_creators_1 = require(\"./action_creators\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer, } = action_creators_1.actionCreators;\nclass DelegateAction extends types_1.Assignable {\n}\nexports.DelegateAction = DelegateAction;\n/**\n * Compose a delegate action for inclusion with a meta transaction signed on the sender's behalf\n * @param actions The set of actions to be included in the meta transaction\n * @param maxBlockHeight The maximum block height for which this action can be executed as part of a transaction\n * @param nonce Current nonce on the access key used to sign the delegate action\n * @param publicKey Public key for the access key used to sign the delegate action\n * @param receiverId Account ID for the intended receiver of the meta transaction\n * @param senderId Account ID for the intended signer of the delegate action\n */\nfunction buildDelegateAction({ actions, maxBlockHeight, nonce, publicKey, receiverId, senderId, }) {\n return new DelegateAction({\n senderId,\n receiverId,\n actions: actions.map((a) => {\n // @ts-expect-error type workaround\n if (!a.type && !a.params) {\n return a;\n }\n // @ts-expect-error type workaround\n switch (a.type) {\n case 'AddKey': {\n // @ts-expect-error type workaround\n const { publicKey, accessKey } = a.params;\n return addKey(publicKey, accessKey);\n }\n case 'CreateAccount': {\n // @ts-expect-error type workaround\n return createAccount(a.params.createAccount);\n }\n case 'DeleteAccount': {\n // @ts-expect-error type workaround\n return deleteAccount(a.params.deleteAccount);\n }\n case 'DeleteKey': {\n // @ts-expect-error type workaround\n return deleteKey(a.params.publicKey);\n }\n case 'DeployContract': {\n // @ts-expect-error type workaround\n return deployContract(a.params.code);\n }\n case 'FunctionCall': {\n // @ts-expect-error type workaround\n const { methodName, args, gas, deposit } = a.params;\n return functionCall(methodName, args, gas, deposit);\n }\n case 'Stake': {\n // @ts-expect-error type workaround\n return stake(a.params.stake, a.params.publicKey);\n }\n case 'Transfer': {\n // @ts-expect-error type workaround\n const { deposit } = a.params;\n return transfer(deposit);\n }\n }\n throw new Error('Unrecognized action');\n }),\n nonce,\n maxBlockHeight,\n publicKey,\n });\n}\nexports.buildDelegateAction = buildDelegateAction;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./action_creators\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./create_transaction\"), exports);\n__exportStar(require(\"./delegate\"), exports);\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./sign\"), exports);\n__exportStar(require(\"./signature\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelegateActionPrefix = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst ACTIONABLE_MESSAGE_BASE = Math.pow(2, 30);\n// const NON_ACTIONABLE_MESSAGE_BASE = Math.pow(2, 31);\n/** The set of NEPs for which an [NEP-461](https://github.com/near/NEPs/pull/461) prefix is required on the message prior to hashing **/\nconst NEP = {\n MetaTransactions: 366,\n};\n/** Base class for NEP message prefixes **/\nclass NEPPrefix extends types_1.Assignable {\n}\n/** Class for constructing prefixes on actionable (on-chain) messages **/\nclass ActionableMessagePrefix extends NEPPrefix {\n /** Given the NEP number, set the prefix using 2^30 as the offset **/\n constructor(prefix) {\n super({ prefix: ACTIONABLE_MESSAGE_BASE + prefix });\n }\n}\n/**\n * Class for constructing prefixes on non-actionable (off-chain) messages\n * @todo uncomment when off-chain messages are supported\n * **/\n// abstract class NonActionableMessagePrefix extends NEPPrefix {\n// /** Given the NEP number, set the prefix using 2^31 as the offset **/\n// protected constructor(prefix: number) {\n// super({ prefix: NON_ACTIONABLE_MESSAGE_BASE + prefix });\n// }\n// }\n/** Prefix for delegate actions whose signatures must always be distinguishable from valid transaction signatures **/\nclass DelegateActionPrefix extends ActionableMessagePrefix {\n constructor() { super(NEP.MetaTransactions); }\n}\nexports.DelegateActionPrefix = DelegateActionPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCHEMA = exports.SignedTransaction = exports.Transaction = exports.decodeSignedTransaction = exports.decodeTransaction = exports.encodeTransaction = exports.encodeSignedDelegate = exports.encodeDelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst borsh_1 = require(\"borsh\");\nconst prefix_1 = require(\"./prefix\");\n/**\n * Borsh-encode a delegate action for inclusion as an action within a meta transaction\n * NB per NEP-461 this requires a Borsh-serialized prefix specific to delegate actions, ensuring\n * signed delegate actions may never be identical to signed transactions with the same fields\n * @param delegateAction Delegate action to be signed by the meta transaction sender\n */\nfunction encodeDelegateAction(delegateAction) {\n return new Uint8Array([\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateActionPrefix, new prefix_1.DelegateActionPrefix()),\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateAction, delegateAction),\n ]);\n}\nexports.encodeDelegateAction = encodeDelegateAction;\n/**\n * Borsh-encode a signed delegate for validation and execution by a relayer\n * @param signedDelegate Signed delegate to be executed in a meta transaction\n */\nfunction encodeSignedDelegate(signedDelegate) {\n return (0, borsh_1.serialize)(exports.SCHEMA.SignedDelegate, signedDelegate);\n}\nexports.encodeSignedDelegate = encodeSignedDelegate;\n/**\n* Borsh-encode a transaction or signed transaction into a serialized form.\n* @param transaction The transaction or signed transaction object to be encoded.\n* @returns A serialized representation of the input transaction.\n*/\nfunction encodeTransaction(transaction) {\n const schema = transaction instanceof SignedTransaction ? exports.SCHEMA.SignedTransaction : exports.SCHEMA.Transaction;\n return (0, borsh_1.serialize)(schema, transaction);\n}\nexports.encodeTransaction = encodeTransaction;\n/**\n * Borsh-decode a Transaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeTransaction(bytes) {\n return new Transaction((0, borsh_1.deserialize)(exports.SCHEMA.Transaction, bytes));\n}\nexports.decodeTransaction = decodeTransaction;\n/**\n * Borsh-decode a SignedTransaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeSignedTransaction(bytes) {\n return new SignedTransaction((0, borsh_1.deserialize)(exports.SCHEMA.SignedTransaction, bytes));\n}\nexports.decodeSignedTransaction = decodeSignedTransaction;\nclass Transaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeTransaction(bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeSignedTransaction(bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\nexports.SCHEMA = new class BorshSchema {\n constructor() {\n this.Signature = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 64 } },\n }\n };\n this.PublicKey = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 32 } },\n }\n };\n this.FunctionCallPermission = {\n struct: {\n allowance: { option: 'u128' },\n receiverId: 'string',\n methodNames: { array: { type: 'string' } },\n }\n };\n this.FullAccessPermission = {\n struct: {}\n };\n this.AccessKeyPermission = {\n enum: [\n { struct: { functionCall: this.FunctionCallPermission } },\n { struct: { fullAccess: this.FullAccessPermission } },\n ]\n };\n this.AccessKey = {\n struct: {\n nonce: 'u64',\n permission: this.AccessKeyPermission,\n }\n };\n this.CreateAccount = {\n struct: {}\n };\n this.DeployContract = {\n struct: {\n code: { array: { type: 'u8' } },\n }\n };\n this.FunctionCall = {\n struct: {\n methodName: 'string',\n args: { array: { type: 'u8' } },\n gas: 'u64',\n deposit: 'u128',\n }\n };\n this.Transfer = {\n struct: {\n deposit: 'u128',\n }\n };\n this.Stake = {\n struct: {\n stake: 'u128',\n publicKey: this.PublicKey,\n }\n };\n this.AddKey = {\n struct: {\n publicKey: this.PublicKey,\n accessKey: this.AccessKey,\n }\n };\n this.DeleteKey = {\n struct: {\n publicKey: this.PublicKey,\n }\n };\n this.DeleteAccount = {\n struct: {\n beneficiaryId: 'string',\n }\n };\n this.DelegateActionPrefix = {\n struct: {\n prefix: 'u32',\n }\n };\n this.ClassicActions = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n ]\n };\n this.DelegateAction = {\n struct: {\n senderId: 'string',\n receiverId: 'string',\n actions: { array: { type: this.ClassicActions } },\n nonce: 'u64',\n maxBlockHeight: 'u64',\n publicKey: this.PublicKey,\n }\n };\n this.SignedDelegate = {\n struct: {\n delegateAction: this.DelegateAction,\n signature: this.Signature,\n }\n };\n this.Action = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n { struct: { signedDelegate: this.SignedDelegate } },\n ]\n };\n this.Transaction = {\n struct: {\n signerId: 'string',\n publicKey: this.PublicKey,\n nonce: 'u64',\n receiverId: 'string',\n blockHash: { array: { type: 'u8', len: 32 } },\n actions: { array: { type: this.Action } },\n }\n };\n this.SignedTransaction = {\n struct: {\n transaction: this.Transaction,\n signature: this.Signature,\n }\n };\n }\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signDelegateAction = exports.signTransaction = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst actions_1 = require(\"./actions\");\nconst create_transaction_1 = require(\"./create_transaction\");\nconst schema_1 = require(\"./schema\");\nconst signature_1 = require(\"./signature\");\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nfunction signTransactionObject(transaction, signer, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeTransaction)(transaction);\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n const signature = yield signer.signMessage(message, accountId, networkId);\n const signedTx = new schema_1.SignedTransaction({\n transaction,\n signature: new signature_1.Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n });\n}\nfunction signTransaction(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (args[0].constructor === schema_1.Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = yield signer.getPublicKey(accountId, networkId);\n const transaction = (0, create_transaction_1.createTransaction)(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n });\n}\nexports.signTransaction = signTransaction;\n/**\n * Sign a delegate action\n * @options SignDelegate options\n * @param options.delegateAction Delegate action to be signed by the meta transaction sender\n * @param options.signer Signer instance for the meta transaction sender\n */\nfunction signDelegateAction({ delegateAction, signer }) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeDelegateAction)(delegateAction);\n const signature = yield signer.sign(message);\n const signedDelegateAction = new actions_1.SignedDelegate({\n delegateAction,\n signature: new signature_1.Signature({\n keyType: delegateAction.publicKey.keyType,\n data: signature,\n }),\n });\n return {\n hash: new Uint8Array((0, sha256_1.sha256)(message)),\n signedDelegateAction,\n };\n });\n}\nexports.signDelegateAction = signDelegateAction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signature = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Signature extends types_1.Assignable {\n}\nexports.Signature = Signature;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\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.DEFAULT_FUNCTION_CALL_GAS = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = new bn_js_1.default('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = new bn_js_1.default('10', 10).pow(new bn_js_1.default(exports.NEAR_NOMINATION_EXP, 10));\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = new bn_js_1.default(10);\nfor (let i = 0, offset = new bn_js_1.default(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset.mul(BN10)) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n const balanceBN = new bn_js_1.default(balance, 10);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN.iadd(ROUNDING_OFFSETS[roundingExp]);\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || '0';\n const fractionStr = balance.substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, '0').substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split('.');\n const wholePart = split[0];\n const fracPart = split[1] || '';\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, '0'));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, '').trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, '');\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, '');\n if (value === '') {\n return '0';\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, '$1,$2');\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === 'string') {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const num = new bn_js_1.default(numSeats);\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (stakesSum.lt(num)) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = new bn_js_1.default(1), right = stakesSum.add(new bn_js_1.default(1));\n while (!left.eq(right.sub(new bn_js_1.default(1)))) {\n const mid = left.add(right).div(new bn_js_1.default(2));\n let found = false;\n let currentSum = new bn_js_1.default(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum.add(stakes[i].div(mid));\n if (currentSum.gte(num)) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (validators.length < maxNumberOfSeats) {\n return stakesSum.mul(new bn_js_1.default(minimumStakeRatio[0])).div(new bn_js_1.default(minimumStakeRatio[1]));\n }\n else {\n return stakes[0].add(new bn_js_1.default(1));\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = void 0;\nvar near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nvar wallet_account_1 = require(\"./wallet_account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\n/**\n * This module contains the main class developers will use to interact with NEAR.\n * The {@link Near} class is used to interact with {@link \"@near-js/accounts\".account.Account | Account} through the {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider}.\n * It is configured via the {@link NearConfig}.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#account](https://docs.near.org/tools/near-api-js/quick-reference#account)\n *\n * @module near\n */\nconst accounts_1 = require(\"@near-js/accounts\");\n/**\n * This is the main class developers should use to interact with NEAR.\n * @example\n * ```js\n * const near = new Near(config);\n * ```\n */\nclass Near {\n constructor(config) {\n var _a;\n this.config = config;\n this.connection = accounts_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: config.provider || { type: 'JsonRpcProvider', args: { url: config.nodeUrl, headers: config.headers } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || ((_a = config.deps) === null || _a === void 0 ? void 0 : _a.keyStore) },\n jsvmAccountId: config.jsvmAccountId || `jsvm.${config.networkId}`\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? BigInt(config.initialBalance) : BigInt('500000000000000000000000000');\n this.accountCreator = new accounts_1.LocalAccountCreator(new accounts_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new accounts_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n * @param accountId near accountId used to interact with the network.\n */\n account(accountId) {\n return __awaiter(this, void 0, void 0, function* () {\n const account = new accounts_1.Account(this.connection, accountId);\n return account;\n });\n }\n /**\n * Create an account using the {@link AccountCreator}. Either:\n * * using a masterAccount with {@link LocalAccountCreator}\n * * using the helperUrl with {@link UrlAccountCreator}\n * @see {@link NearConfig#masterAccount} and {@link NearConfig#helperUrl}\n *\n * @param accountId\n * @param publicKey\n */\n createAccount(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n yield this.accountCreator.createAccount(accountId, publicKey);\n return new accounts_1.Account(this.connection, accountId);\n });\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletConnection = void 0;\n/**\n * This module exposes two classes:\n * * {@link WalletConnection} which redirects users to [NEAR Wallet](https://wallet.near.org/) for key management.\n * * {@link ConnectedWalletAccount} is an {@link \"@near-js/accounts\".account.Account | Account} implementation that uses {@link WalletConnection} to get keys\n *\n * @module walletAccount\n */\nconst accounts_1 = require(\"@near-js/accounts\");\nconst crypto_1 = require(\"@near-js/crypto\");\nconst utils_1 = require(\"@near-js/utils\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst borsh_1 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\n/**\n * This class is not intended for use outside the browser. Without `window` (i.e. in server contexts), it will instantiate but will throw a clear error when used.\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#wallet](https://docs.near.org/tools/near-api-js/quick-reference#wallet)\n * @example\n * ```js\n * // create new WalletConnection instance\n * const wallet = new WalletConnection(near, 'my-app');\n *\n * // If not signed in redirect to the NEAR wallet to sign in\n * // keys will be stored in the BrowserLocalStorageKeyStore\n * if(!wallet.isSignedIn()) return wallet.requestSignIn()\n * ```\n */\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n if (typeof (appKeyPrefix) !== 'string') {\n throw new Error('Please define a clear appKeyPrefix for this WalletConnection instance as the second argument to the constructor');\n }\n if (typeof window === 'undefined') {\n return new Proxy(this, {\n get(target, property) {\n if (property === 'isSignedIn') {\n return () => false;\n }\n if (property === 'getAccountId') {\n return () => '';\n }\n if (target[property] && typeof target[property] === 'function') {\n return () => {\n throw new Error('No window found in context, please ensure you are using WalletConnection on the browser');\n };\n }\n return target[property];\n }\n });\n }\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInPromise = this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletConnection is authorized with the wallet.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn();\n * ```\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns promise of completing signing in after redirecting from wallet\n * @example\n * ```js\n * // on login callback page\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn(); // false\n * await wallet.isSignedInAsync(); // true\n * ```\n */\n isSignedInAsync() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._completeSignInPromise) {\n return this.isSignedIn();\n }\n yield this._completeSignInPromise;\n return this.isSignedIn();\n });\n }\n /**\n * Returns authorized Account ID.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.getAccountId();\n * ```\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Constructs string URL to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // return string URL to the NEAR Wallet\n * const url = await wallet.requestSignInUrl({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignInUrl({ contractId, methodNames, successUrl, failureUrl }) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', failureUrl || currentUrl.href);\n if (contractId) {\n /* Throws exception if contract account does not exist */\n const contractAccount = yield this._near.account(contractId);\n yield contractAccount.state();\n newUrl.searchParams.set('contract_id', contractId);\n const accessKey = crypto_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n yield this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n if (methodNames) {\n methodNames.forEach(methodName => {\n newUrl.searchParams.append('methodNames', methodName);\n });\n }\n return newUrl.toString();\n });\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // redirects to the NEAR Wallet\n * wallet.requestSignIn({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n requestSignIn(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = yield this.requestSignInUrl(options);\n window.location.assign(url);\n });\n }\n /**\n * Constructs string URL to the wallet to sign a transaction or batch of transactions.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactionsUrl({ transactions, meta, callbackUrl }) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => (0, borsh_1.serialize)(transactions_1.SCHEMA.Transaction, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n if (meta)\n newUrl.searchParams.set('meta', meta);\n return newUrl.toString();\n }\n /**\n * Requests the user to quickly sign for a transaction or batch of transactions by redirecting to the wallet.\n *\n * @param options A required options object\n * @param options.transactions List of transactions to sign\n * @param options.callbackUrl URL to redirect upon success. Default: current url\n * @param options.meta Meta information the wallet will send back to the application. `meta` will be attached to the `callbackUrl` as a url search param\n *\n */\n requestSignTransactions(options) {\n const url = this.requestSignTransactionsUrl(options);\n window.location.assign(url);\n }\n /**\n * @hidden\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n _completeSignInWithAccessKey() {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n const authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(authData));\n if (publicKey) {\n yield this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n this._authData = authData;\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n currentUrl.searchParams.delete('meta');\n currentUrl.searchParams.delete('transactionHashes');\n window.history.replaceState({}, document.title, currentUrl.toString());\n });\n }\n /**\n * @hidden\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n _moveKeyFromTempToPermanent(accountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n yield this._keyStore.setKey(this._networkId, accountId, keyPair);\n yield this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n });\n }\n /**\n * Sign out from the current account\n * @example\n * walletConnection.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using {@link WalletConnection} when no local key is available.\n */\nclass ConnectedWalletAccount extends accounts_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n /**\n * Sign a transaction by redirecting to the NEAR Wallet\n * @see {@link WalletConnection#requestSignTransactions}\n * @param options An optional options object\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions An array of transaction actions to be performed.\n * @param options.walletMeta Additional metadata to be included in the wallet signing request.\n * @param options.walletCallbackUrl URL to redirect upon completion of the wallet signing process. Default: current URL.\n */\n signAndSendTransaction({ receiverId, actions, walletMeta, walletCallbackUrl = window.location.href }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const localKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = yield this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n }\n catch (e) {\n if (e.type === 'NotEnoughAllowance') {\n accessKey = yield this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = (0, utils_1.baseDecode)(block.header.hash);\n const publicKey = crypto_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce + BigInt(1);\n const transaction = (0, transactions_1.createTransaction)(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n yield this.walletConnection.requestSignTransactions({\n transactions: [transaction],\n meta: walletMeta,\n callbackUrl: walletCallbackUrl\n });\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TransactionQueue which also can be used to watch for status?\n });\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of \\{access_key: AccessKey, public_key: PublicKey\\} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n });\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n */\n accessKeyForTransaction(receiverId, actions, localKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeys = yield this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key.toString() === localKey.toString());\n if (accessKey && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && (yield this.accessKeyMatchesTransaction(accessKey, receiverId, actions))) {\n return accessKey;\n }\n }\n return null;\n });\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst utils_2 = require(\"./utils\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey, stake, transfer, } = transactions_1.actionCreators;\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\n/**\n * This class provides common account related RPC calls including signing transactions with a {@link \"@near-js/crypto\".key_pair.KeyPair | KeyPair}.\n */\nclass Account {\n constructor(connection, accountId) {\n /** @hidden */\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n getConnection() {\n return this.connection;\n }\n /**\n * Returns basic NEAR account information via the `view_account` RPC query method\n * @see [https://docs.near.org/api/rpc/contracts#view-account](https://docs.near.org/api/rpc/contracts#view-account)\n */\n state() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.connection.provider.query({\n request_type: 'view_account',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n });\n }\n /**\n * Create a signed transaction which can be broadcast to the network\n * @param receiverId NEAR account receiving the transaction\n * @param actions list of actions to perform as part of the transaction\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n */\n signTransaction(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeyInfo = yield this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new types_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair exists for this account`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = accessKey.nonce + BigInt(1);\n return yield (0, transactions_1.signTransaction)(receiverId, nonce, actions, (0, utils_1.baseDecode)(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n });\n }\n /**\n * Sign a transaction to perform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider }\n *\n * @param options The options for signing and sending the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be performed in the transaction.\n * @param options.returnError Whether to return an error if the transaction fails.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions, returnError }) {\n return __awaiter(this, void 0, void 0, function* () {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = yield (0, providers_1.exponentialBackoff)(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n [txHash, signedTx] = yield this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return yield this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n if (error.type === 'Expired') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} due to expired block hash`);\n return null;\n }\n error.context = new types_1.ErrorContext((0, utils_1.baseEncode)(txHash));\n throw error;\n }\n }));\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new types_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n (0, utils_1.printTxOutcomeLogsAndFailures)({ contractId: signedTx.transaction.receiverId, outcome: result });\n // Should be falsy if result.status.Failure is null\n if (!returnError && typeof result.status === 'object' && typeof result.status.Failure === 'object' && result.status.Failure !== null) {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new types_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw (0, utils_1.parseResultError)(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n });\n }\n /**\n * Finds the {@link AccessKeyView} associated with the accounts {@link PublicKey} stored in the {@link \"@near-js/keystores\".keystore.KeyStore | Keystore}.\n *\n * @todo Find matching access key based on transaction (i.e. receiverId and actions)\n *\n * @param receiverId currently unused (see todo)\n * @param actions currently unused (see todo)\n * @returns `{ publicKey PublicKey; accessKey: AccessKeyView }`\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n findAccessKey(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n throw new types_1.TypedError(`no matching key pair found in ${this.connection.signer}`, 'PublicKeyNotFound');\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const rawAccessKey = yield this.connection.provider.query({\n request_type: 'view_access_key',\n account_id: this.accountId,\n public_key: publicKey.toString(),\n finality: 'optimistic'\n });\n // store nonce as BigInt to preserve precision on big number\n const accessKey = Object.assign(Object.assign({}, rawAccessKey), { nonce: BigInt(rawAccessKey.nonce || 0) });\n // this function can be called multiple times and retrieve the same access key\n // this checks to see if the access key was already retrieved and cached while\n // the above network call was in flight. To keep nonce values in line, we return\n // the cached access key.\n if (this.accessKeyByPublicKeyCache[publicKey.toString()]) {\n return { publicKey, accessKey: this.accessKeyByPublicKeyCache[publicKey.toString()] };\n }\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n });\n }\n /**\n * Create a new account and deploy a contract to it\n *\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add to the created contract account\n * @param data The compiled contract code\n * @param amount of NEAR to transfer to the created contract account. Transfer enough to pay for storage https://docs.near.org/docs/concepts/storage-staking\n */\n createAndDeployContract(contractId, publicKey, data, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n yield this.signAndSendTransaction({\n receiverId: contractId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey), deployContract(data)]\n });\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n });\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n */\n sendMoney(receiverId, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId,\n actions: [transfer(amount)]\n });\n });\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n */\n createAccount(newAccountId, publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n return this.signAndSendTransaction({\n receiverId: newAccountId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n */\n deleteAccount(beneficiaryId) {\n return __awaiter(this, void 0, void 0, function* () {\n utils_1.Logger.log('Deleting an account does not automatically transfer NFTs and FTs to the beneficiary address. Ensure to transfer assets before deleting.');\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteAccount(beneficiaryId)]\n });\n });\n }\n /**\n * @param data The compiled contract code\n */\n deployContract(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deployContract(data)]\n });\n });\n }\n /** @hidden */\n encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n }\n /**\n * Execute a function call.\n * @param options The options for the function call.\n * @param options.contractId The NEAR account ID of the smart contract.\n * @param options.methodName The name of the method to be called on the smart contract.\n * @param options.args The arguments to be passed to the method.\n * @param options.gas The maximum amount of gas to be used for the function call.\n * @param options.attachedDeposit The amount of NEAR tokens to be attached to the function call.\n * @param options.walletMeta Metadata for wallet integration.\n * @param options.walletCallbackUrl The callback URL for wallet integration.\n * @param options.stringify A function to convert input arguments into bytes array\n * @param options.jsContract Whether the contract is from JS SDK, automatically encodes args from JS SDK to binary.\n * @returns {Promise} A promise that resolves to the final execution outcome of the function call.\n */\n functionCall({ contractId, methodName, args = {}, gas = utils_1.DEFAULT_FUNCTION_CALL_GAS, attachedDeposit, walletMeta, walletCallbackUrl, stringify, jsContract }) {\n return __awaiter(this, void 0, void 0, function* () {\n this.validateArgs(args);\n let functionCallArgs;\n if (jsContract) {\n const encodedArgs = this.encodeJSContractArgs(contractId, methodName, JSON.stringify(args));\n functionCallArgs = ['call_js_contract', encodedArgs, gas, attachedDeposit, null, true];\n }\n else {\n const stringifyArg = stringify === undefined ? transactions_1.stringifyJsonOrBytes : stringify;\n functionCallArgs = [methodName, args, gas, attachedDeposit, stringifyArg, false];\n }\n return this.signAndSendTransaction({\n receiverId: jsContract ? this.connection.jsvmAccountId : contractId,\n // eslint-disable-next-line prefer-spread\n actions: [functionCall.apply(void 0, functionCallArgs)],\n walletMeta,\n walletCallbackUrl\n });\n });\n }\n /**\n * @see [https://docs.near.org/concepts/basics/accounts/access-keys](https://docs.near.org/concepts/basics/accounts/access-keys)\n * @todo expand this API to support more options.\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n */\n addKey(publicKey, contractId, methodNames, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = fullAccessKey();\n }\n else {\n accessKey = functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise}\n */\n deleteKey(publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteKey(crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * @see [https://near-nodes.io/validator/staking-and-delegation](https://near-nodes.io/validator/staking-and-delegation)\n *\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n */\n stake(publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [stake(amount, crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * Compose and sign a SignedDelegate action to be executed in a transaction on behalf of this Account instance\n *\n * @param options Options for the transaction.\n * @param options.actions Actions to be included in the meta transaction\n * @param options.blockHeightTtl Number of blocks past the current block height for which the SignedDelegate action may be included in a meta transaction\n * @param options.receiverId Receiver account of the meta transaction\n */\n signedDelegate({ actions, blockHeightTtl, receiverId, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { provider, signer } = this.connection;\n const { header } = yield provider.block({ finality: 'final' });\n const { accessKey, publicKey } = yield this.findAccessKey(null, null);\n const delegateAction = (0, transactions_1.buildDelegateAction)({\n actions,\n maxBlockHeight: BigInt(header.height) + BigInt(blockHeightTtl),\n nonce: BigInt(accessKey.nonce) + BigInt(1),\n publicKey,\n receiverId,\n senderId: this.accountId,\n });\n const { signedDelegateAction } = yield (0, transactions_1.signDelegateAction)({\n delegateAction,\n signer: {\n sign: (message) => __awaiter(this, void 0, void 0, function* () {\n const { signature } = yield signer.signMessage(message, delegateAction.senderId, this.connection.networkId);\n return signature;\n }),\n }\n });\n return signedDelegateAction;\n });\n }\n /** @hidden */\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n }\n /**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\n viewFunction(options) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, utils_2.viewFunction)(this.connection, options);\n });\n }\n /**\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n viewState(prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, utils_2.viewState)(this.connection, this.accountId, prefix, blockQuery);\n });\n }\n /**\n * Get all access keys for the account\n * @see [https://docs.near.org/api/rpc/access-keys#view-access-key-list](https://docs.near.org/api/rpc/access-keys#view-access-key-list)\n */\n getAccessKeys() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.connection.provider.query({\n request_type: 'view_access_key_list',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n // Replace raw nonce into a new BigInt\n return (_a = response === null || response === void 0 ? void 0 : response.keys) === null || _a === void 0 ? void 0 : _a.map((key) => (Object.assign(Object.assign({}, key), { access_key: Object.assign(Object.assign({}, key.access_key), { nonce: BigInt(key.access_key.nonce) }) })));\n });\n }\n /**\n * Returns a list of authorized apps\n * @todo update the response value to return all the different keys, not just app keys.\n */\n getAccountDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = yield this.getAccessKeys();\n const authorizedApps = accessKeys\n .filter(item => item.access_key.permission !== 'FullAccess')\n .map(item => {\n const perm = item.access_key.permission;\n return {\n contractId: perm.FunctionCall.receiver_id,\n amount: perm.FunctionCall.allowance,\n publicKey: item.public_key,\n };\n });\n return { authorizedApps };\n });\n }\n /**\n * Returns calculated account balance\n */\n getAccountBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const protocolConfig = yield this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = yield this.state();\n const costPerByte = BigInt(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = BigInt(state.storage_usage) * costPerByte;\n const staked = BigInt(state.locked);\n const totalBalance = BigInt(state.amount) + staked;\n const availableBalance = totalBalance - (staked > stateStaked ? staked : stateStaked);\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n });\n }\n /**\n * Returns the NEAR tokens balance and validators of a given account that is delegated to the staking pools that are part of the validators set in the current epoch.\n *\n * NOTE: If the tokens are delegated to a staking pool that is currently on pause or does not have enough tokens to participate in validation, they won't be accounted for.\n * @returns {Promise}\n */\n getActiveDelegatedStakeBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const epochId = block.header.epoch_id;\n const { current_validators, next_validators, current_proposals } = yield this.connection.provider.validators(epochId);\n const pools = new Set();\n [...current_validators, ...next_validators, ...current_proposals]\n .forEach((validator) => pools.add(validator.account_id));\n const uniquePools = [...pools];\n const promises = uniquePools\n .map((validator) => (this.viewFunction({\n contractId: validator,\n methodName: 'get_account_total_balance',\n args: { account_id: this.accountId },\n blockQuery: { blockId: blockHash }\n })));\n const results = yield Promise.allSettled(promises);\n const hasTimeoutError = results.some((result) => {\n if (result.status === 'rejected' && result.reason.type === 'TimeoutError') {\n return true;\n }\n return false;\n });\n // When RPC is down and return timeout error, throw error\n if (hasTimeoutError) {\n throw new Error('Failed to get delegated stake balance');\n }\n const summary = results.reduce((result, state, index) => {\n const validatorId = uniquePools[index];\n if (state.status === 'fulfilled') {\n const currentBN = BigInt(state.value);\n if (currentBN !== BigInt(0)) {\n return Object.assign(Object.assign({}, result), { stakedValidators: [...result.stakedValidators, { validatorId, amount: currentBN.toString() }], total: result.total + currentBN });\n }\n }\n if (state.status === 'rejected') {\n return Object.assign(Object.assign({}, result), { failedValidators: [...result.failedValidators, { validatorId, error: state.reason }] });\n }\n return result;\n }, { stakedValidators: [], failedValidators: [], total: BigInt(0) });\n return Object.assign(Object.assign({}, summary), { total: summary.total.toString() });\n });\n }\n}\nexports.Account = Account;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst types_1 = require(\"@near-js/types\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_multisig_1 = require(\"./account_multisig\");\nconst constants_1 = require(\"./constants\");\nconst types_2 = require(\"./types\");\nconst { addKey, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey } = transactions_1.actionCreators;\nclass Account2FA extends account_multisig_1.AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n }\n /**\n * Sign a transaction to preform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n *\n * @param options Options for the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n yield this.sendCode();\n const result = yield this.promptAndVerify();\n if (this.onConfirmResult) {\n yield this.onConfirmResult(result);\n }\n return result;\n });\n }\n // default helpers for CH deployments of multisig\n /**\n * Deploy a multisig contract with 2FA and handle the deployment process.\n * @param contractBytes - The bytecode of the multisig contract.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deployment.\n */\n deployMultisig(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransactionWithAccount: { get: () => super.signAndSendTransactionWithAccount }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const seedOrLedgerKey = (yield this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (yield this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => deleteKey(pk)),\n ...fak2lak.map((pk) => addKey(pk, functionCallAccessKey(accountId, constants_1.MULTISIG_CHANGE_METHODS, null))),\n addKey(confirmOnlyKey, functionCallAccessKey(accountId, constants_1.MULTISIG_CONFIRM_METHODS, null)),\n deployContract(contractBytes),\n ];\n const newFunctionCallActionBatch = actions.concat(functionCall('new', newArgs, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT));\n utils_1.Logger.log('deploying multisig contract for', accountId);\n const { stateStatus: multisigStateStatus } = yield this.checkMultisigCodeAndStateStatus(contractBytes);\n switch (multisigStateStatus) {\n case types_2.MultisigStateStatus.STATE_NOT_INITIALIZED:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, newFunctionCallActionBatch);\n case types_2.MultisigStateStatus.VALID_STATE:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, actions);\n case types_2.MultisigStateStatus.INVALID_STATE:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState');\n default:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n });\n }\n /**\n * Disable 2FA with the option to clean up contract state.\n * @param options Options for disabling 2FA.\n * @param options.contractBytes The bytecode of the contract to deploy.\n * @param options.cleanupContractBytes The bytecode of the cleanup contract (optional).\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disableWithFAK({ contractBytes, cleanupContractBytes }) {\n return __awaiter(this, void 0, void 0, function* () {\n let cleanupActions = [];\n if (cleanupContractBytes) {\n yield this.deleteAllRequests().catch(e => e);\n cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes);\n }\n const keyConversionActions = yield this.get2faDisableKeyConversionActions();\n const actions = [\n ...cleanupActions,\n ...keyConversionActions,\n deployContract(contractBytes)\n ];\n const accessKeyInfo = yield this.findAccessKey(this.accountId, actions);\n if (accessKeyInfo && accessKeyInfo.accessKey && accessKeyInfo.accessKey.permission !== 'FullAccess') {\n throw new types_1.TypedError('No full access key found in keystore. Unable to bypass multisig', 'NoFAKFound');\n }\n return this.signAndSendTransactionWithAccount(this.accountId, actions);\n });\n }\n /**\n * Retrieves cleanup actions for disabling 2FA.\n * @param cleanupContractBytes - The bytecode of the cleanup contract.\n * @returns {Promise} - A promise that resolves to an array of cleanup actions.\n */\n get2faDisableCleanupActions(cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentAccountState = yield this.viewState('').catch(error => {\n const cause = error.cause && error.cause.name;\n if (cause == 'NO_CONTRACT_CODE') {\n return [];\n }\n throw cause == 'TOO_LARGE_CONTRACT_STATE'\n ? new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState')\n : error;\n });\n const currentAccountStateKeys = currentAccountState.map(({ key }) => key.toString('base64'));\n return currentAccountState.length ? [\n deployContract(cleanupContractBytes),\n functionCall('clean', { keys: currentAccountStateKeys }, constants_1.MULTISIG_GAS, BigInt('0'))\n ] : [];\n });\n }\n /**\n * Retrieves key conversion actions for disabling 2FA.\n * @returns {Promise} - A promise that resolves to an array of key conversion actions.\n */\n get2faDisableKeyConversionActions() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const accessKeys = yield this.getAccessKeys();\n const lak2fak = accessKeys\n .filter(({ access_key }) => access_key.permission !== 'FullAccess')\n .filter(({ access_key }) => {\n const perm = access_key.permission.FunctionCall;\n return perm.receiver_id === accountId &&\n perm.method_names.length === 4 &&\n perm.method_names.includes('add_request_and_confirm');\n });\n const confirmOnlyKey = crypto_1.PublicKey.from((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n return [\n deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => deleteKey(crypto_1.PublicKey.from(public_key))),\n ...lak2fak.map(({ public_key }) => addKey(crypto_1.PublicKey.from(public_key), fullAccessKey()))\n ];\n });\n }\n /**\n * This method converts LAKs back to FAKs, clears state and deploys an 'empty' contract (contractBytes param)\n * @param [contractBytes]{@link https://github.com/near/near-wallet/blob/master/packages/frontend/src/wasm/main.wasm?raw=true}\n * @param [cleanupContractBytes]{@link https://github.com/near/core-contracts/blob/master/state-manipulation/res/state_cleanup.wasm?raw=true}\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disable(contractBytes, cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const { stateStatus } = yield this.checkMultisigCodeAndStateStatus();\n if (stateStatus !== types_2.MultisigStateStatus.VALID_STATE && stateStatus !== types_2.MultisigStateStatus.STATE_NOT_INITIALIZED) {\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n let deleteAllRequestsError;\n yield this.deleteAllRequests().catch(e => deleteAllRequestsError = e);\n const cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes).catch(e => {\n if (e.type === 'ContractHasExistingState') {\n throw deleteAllRequestsError || e;\n }\n throw e;\n });\n const actions = [\n ...cleanupActions,\n ...(yield this.get2faDisableKeyConversionActions()),\n deployContract(contractBytes),\n ];\n utils_1.Logger.log('disabling 2fa for', this.accountId);\n return yield this.signAndSendTransaction({\n receiverId: this.accountId,\n actions\n });\n });\n }\n /**\n * Default implementation for sending the 2FA code.\n * @returns {Promise} - A promise that resolves to the request ID.\n */\n sendCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const { requestId } = this.getRequest();\n const method = yield this.get2faMethod();\n yield this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n });\n }\n getCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n });\n }\n /**\n * Prompts the user to enter and verify the 2FA code.\n * @returns {Promise} - A promise that resolves to the verification result.\n */\n promptAndVerify() {\n return __awaiter(this, void 0, void 0, function* () {\n const method = yield this.get2faMethod();\n const securityCode = yield this.getCode(method);\n try {\n const result = yield this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n utils_1.Logger.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return yield this.promptAndVerify();\n }\n throw e;\n }\n });\n }\n /**\n * Verify the 2FA code using the default method.\n * @param securityCode - The security code to verify.\n * @returns {Promise} A promise that resolves to the verification result.\n */\n verifyCodeDefault(securityCode) {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return yield this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n });\n }\n /**\n * Retrieves recovery methods for the account.\n * @returns {Promise<{ accountId: string, data: any }>} - A promise that resolves to recovery methods data.\n */\n getRecoveryMethods() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n return {\n accountId,\n data: yield this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n });\n }\n /**\n * Gets the 2FA method (kind and detail).\n * @returns {Promise<{ kind: string, detail: string }>} A promise that resolves to the 2FA method.\n */\n get2faMethod() {\n return __awaiter(this, void 0, void 0, function* () {\n let { data } = yield this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n });\n }\n /**\n * Generates a signature for the latest finalized block.\n * @returns {Promise<{ blockNumber: string, blockNumberSignature: string }>} - A promise that resolves to the signature information.\n */\n signatureFor() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = yield this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n });\n }\n /**\n * Sends a signed JSON request to a specified path.\n * @param path - The path for the request.\n * @param body - The request body.\n * @returns {Promise} - A promise that resolves to the response from the helper.\n */\n postSignedJson(path, body) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, providers_1.fetchJson)(this.helperUrl + path, JSON.stringify(Object.assign(Object.assign({}, body), (yield this.signatureFor()))));\n });\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => crypto_1.PublicKey.from(pk);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n });\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield (0, providers_1.fetchJson)(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n });\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountMultisig = void 0;\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_1 = require(\"./account\");\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"./types\");\nconst { deployContract, functionCall } = transactions_1.actionCreators;\nvar MultisigCodeStatus;\n(function (MultisigCodeStatus) {\n MultisigCodeStatus[MultisigCodeStatus[\"INVALID_CODE\"] = 0] = \"INVALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"VALID_CODE\"] = 1] = \"VALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"UNKNOWN_CODE\"] = 2] = \"UNKNOWN_CODE\";\n})(MultisigCodeStatus || (MultisigCodeStatus = {}));\n// in memory request cache for node w/o localStorage\nconst storageFallback = {\n [constants_1.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n /**\n * Constructs an instance of the `AccountMultisig` class.\n * @param connection The NEAR connection object.\n * @param accountId The NEAR account ID.\n * @param options Additional options for the multisig account.\n * @param options.storage Storage to store data related to multisig operations.\n * @param options.onAddRequestResult Callback function to handle the result of adding a request.\n */\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n }\n /**\n * Sign and send a transaction with the multisig account as the sender.\n * @param receiverId - The NEAR account ID of the transaction receiver.\n * @param actions - The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransactionWithAccount(receiverId, actions) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return _super.signAndSendTransaction.call(this, { receiverId, actions });\n });\n }\n /**\n * Sign and send a multisig transaction to add a request and confirm it.\n * @param options Options for the multisig transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n let result;\n try {\n result = yield _super.signAndSendTransaction.call(this, {\n receiverId: accountId,\n actions: [\n functionCall('add_request_and_confirm', args, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n catch (e) {\n if (e.toString().includes('Account has too many active requests. Confirm or delete some')) {\n yield this.deleteUnconfirmedRequests();\n return yield this.signAndSendTransaction({ receiverId, actions });\n }\n throw e;\n }\n // TODO: Are following even needed? Seems like it throws on error already\n if (!result.status) {\n throw new Error('Request failed');\n }\n const status = Object.assign({}, result.status);\n if (!status.SuccessValue || typeof status.SuccessValue !== 'string') {\n throw new Error('Request failed');\n }\n this.setRequest({\n accountId,\n actions,\n requestId: parseInt(Buffer.from(status.SuccessValue, 'base64').toString('ascii'), 10)\n });\n if (this.onAddRequestResult) {\n yield this.onAddRequestResult(result);\n }\n // NOTE there is no await on purpose to avoid blocking for 2fa\n this.deleteUnconfirmedRequests();\n return result;\n });\n }\n /**\n * This method submits a canary transaction that is expected to always fail in order to determine whether the contract currently has valid multisig state\n * and whether it is initialized. The canary transaction attempts to delete a request at index u32_max and will go through if a request exists at that index.\n * a u32_max + 1 and -1 value cannot be used for the canary due to expected u32 error thrown before deserialization attempt.\n * @param contractBytes The bytecode of the multisig contract.\n * @returns {Promise<{ codeStatus: MultisigCodeStatus; stateStatus: MultisigStateStatus }>} A promise that resolves to the status of the code and state.\n */\n checkMultisigCodeAndStateStatus(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const u32_max = 4294967295;\n const validCodeStatusIfNoDeploy = contractBytes ? MultisigCodeStatus.UNKNOWN_CODE : MultisigCodeStatus.VALID_CODE;\n try {\n if (contractBytes) {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId, actions: [\n deployContract(contractBytes),\n functionCall('delete_request', { request_id: u32_max }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n else {\n yield this.deleteRequest(u32_max);\n }\n return { codeStatus: MultisigCodeStatus.VALID_CODE, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n catch (e) {\n if (new RegExp(types_1.MultisigDeleteRequestRejectionError.CANNOT_DESERIALIZE_STATE).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.INVALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.MULTISIG_NOT_INITIALIZED).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.STATE_NOT_INITIALIZED };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.NO_SUCH_REQUEST).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.METHOD_NOT_FOUND).test(e && e.message)) {\n // not reachable if transaction included a deploy\n return { codeStatus: MultisigCodeStatus.INVALID_CODE, stateStatus: types_1.MultisigStateStatus.UNKNOWN_STATE };\n }\n throw e;\n }\n });\n }\n /**\n * Delete a multisig request by its ID.\n * @param request_id The ID of the multisig request to be deleted.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deletion.\n */\n deleteRequest(request_id) {\n return super.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n /**\n * Delete all multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when all requests are deleted.\n */\n deleteAllRequests() {\n return __awaiter(this, void 0, void 0, function* () {\n const request_ids = yield this.getRequestIds();\n if (request_ids.length) {\n yield Promise.all(request_ids.map((id) => this.deleteRequest(id)));\n }\n });\n }\n /**\n * Delete unconfirmed multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when unconfirmed requests are deleted.\n */\n deleteUnconfirmedRequests() {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Delete in batch, don't delete unexpired\n // TODO: Delete in batch, don't delete unexpired (can reduce gas usage dramatically)\n const request_ids = yield this.getRequestIds();\n const { requestId } = this.getRequest();\n for (const requestIdToDelete of request_ids) {\n if (requestIdToDelete == requestId) {\n continue;\n }\n try {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id: requestIdToDelete }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n catch (e) {\n utils_1.Logger.warn('Attempt to delete an earlier request before 15 minutes failed. Will try again.');\n }\n }\n });\n }\n // helpers\n getRequestIds() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Read requests from state to allow filtering by expiration time\n // TODO: https://github.com/near/core-contracts/blob/305d1db4f4f2cf5ce4c1ef3479f7544957381f11/multisig/src/lib.rs#L84\n return this.viewFunction({\n contractId: this.accountId,\n methodName: 'list_request_ids',\n });\n });\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(constants_1.MULTISIG_STORAGE_KEY) || '{}');\n }\n return storageFallback[constants_1.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(constants_1.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[constants_1.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: constants_1.MULTISIG_ALLOWANCE.toString(),\n method_names: constants_1.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst signers_1 = require(\"@near-js/signers\");\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(Object.assign({}, config.args));\n case 'FailoverRpcProvider': {\n const providers = ((config === null || config === void 0 ? void 0 : config.args) || []).map((arg) => new providers_1.JsonRpcProvider(arg));\n return new providers_1.FailoverRpcProvider(providers);\n }\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signers_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer, jsvmAccountId) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n this.jsvmAccountId = jsvmAccountId;\n }\n getConnection() {\n return this;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer, config.jsvmAccountId);\n }\n}\nexports.Connection = Connection;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = BigInt((0, utils_1.parseNearAmount)('1'));\n// TODO: Different gas value for different requests (can reduce gas usage dramatically)\nexports.MULTISIG_GAS = BigInt('100000000000000');\nexports.MULTISIG_DEPOSIT = BigInt('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst local_view_execution_1 = require(\"./local-view-execution\");\nconst is_my_json_valid_1 = __importDefault(require(\"is-my-json-valid\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst near_abi_1 = require(\"near-abi\");\nconst account_1 = require(\"./account\");\nconst errors_1 = require(\"./errors\");\nconst utils_2 = require(\"./utils\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n },\n }[name];\n}\nfunction validateArguments(args, abiFunction, abiRoot) {\n var _a;\n if (!isObject(args))\n return;\n if (abiFunction.params &&\n abiFunction.params.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.params.serialization_type);\n }\n if (abiFunction.result &&\n abiFunction.result.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.result.serialization_type);\n }\n const params = ((_a = abiFunction.params) === null || _a === void 0 ? void 0 : _a.args) || [];\n for (const p of params) {\n const arg = args[p.name];\n const typeSchema = p.type_schema;\n typeSchema.definitions = abiRoot.body.root_schema.definitions;\n const validate = (0, is_my_json_valid_1.default)(typeSchema);\n const valid = validate(arg);\n if (!valid) {\n throw new errors_1.ArgumentSchemaError(p.name, validate.errors);\n }\n }\n // Check there are no extra unknown arguments passed\n for (const argName of Object.keys(args)) {\n const param = params.find((p) => p.name === argName);\n if (!param) {\n throw new errors_1.UnknownArgumentError(argName, params.map((p) => p.name));\n }\n }\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === \"[object Object]\";\n/**\n * Defines a smart contract on NEAR including the change (mutable) and view (non-mutable) methods\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#contract](https://docs.near.org/tools/near-api-js/quick-reference#contract)\n * @example\n * ```js\n * import { Contract } from 'near-api-js';\n *\n * async function contractExample() {\n * const methodOptions = {\n * viewMethods: ['getMessageByAccountId'],\n * changeMethods: ['addMessage']\n * };\n * const contract = new Contract(\n * wallet.account(),\n * 'contract-id.testnet',\n * methodOptions\n * );\n *\n * // use a contract view method\n * const messages = await contract.getMessages({\n * accountId: 'example-account.testnet'\n * });\n *\n * // use a contract change method\n * await contract.addMessage({\n * meta: 'some info',\n * callbackUrl: 'https://example.com/callback',\n * args: { text: 'my message' },\n * amount: 1\n * })\n * }\n * ```\n */\nclass Contract {\n /**\n * @param account NEAR account to sign change method transactions\n * @param contractId NEAR account id where the contract is deployed\n * @param options NEAR smart contract methods that your application will use. These will be available as `contract.methodName`\n */\n constructor(connection, contractId, options) {\n this.connection = connection.getConnection();\n if (connection instanceof account_1.Account) {\n const deprecate = (0, depd_1.default)(\"new Contract(account, contractId, options)\");\n deprecate(\"use `new Contract(connection, contractId, options)` instead\");\n this.account = connection;\n }\n this.contractId = contractId;\n this.lve = new local_view_execution_1.LocalViewExecution(connection);\n const { viewMethods = [], changeMethods = [], abi: abiRoot, useLocalViewExecution, } = options;\n let viewMethodsWithAbi = viewMethods.map((name) => ({\n name,\n abi: null,\n }));\n let changeMethodsWithAbi = changeMethods.map((name) => ({\n name,\n abi: null,\n }));\n if (abiRoot) {\n if (viewMethodsWithAbi.length > 0 ||\n changeMethodsWithAbi.length > 0) {\n throw new errors_1.ConflictingOptions();\n }\n viewMethodsWithAbi = abiRoot.body.functions\n .filter((m) => m.kind === near_abi_1.AbiFunctionKind.View)\n .map((m) => ({ name: m.name, abi: m }));\n changeMethodsWithAbi = abiRoot.body.functions\n .filter((methodAbi) => methodAbi.kind === near_abi_1.AbiFunctionKind.Call)\n .map((methodAbi) => ({ name: methodAbi.name, abi: methodAbi }));\n }\n viewMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (args = {}, options = {}, ...ignored) => __awaiter(this, void 0, void 0, function* () {\n if (ignored.length ||\n !(isObject(args) || isUint8Array(args)) ||\n !isObject(options)) {\n throw new types_1.PositionalArgsError();\n }\n if (abi) {\n validateArguments(args, abi, abiRoot);\n }\n if (useLocalViewExecution) {\n try {\n return yield this.lve.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n catch (error) {\n utils_1.Logger.warn(`Local view execution failed with: \"${error.message}\"`);\n utils_1.Logger.warn(`Fallback to normal RPC call`);\n }\n }\n if (this.account) {\n return this.account.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n return (0, utils_2.viewFunction)(this.connection, Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n })),\n });\n });\n changeMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (...args) => __awaiter(this, void 0, void 0, function* () {\n if (args.length &&\n (args.length > 3 ||\n !(isObject(args[0]) || isUint8Array(args[0])))) {\n throw new types_1.PositionalArgsError();\n }\n if (args.length > 1 || !(args[0] && args[0].args)) {\n const deprecate = (0, depd_1.default)(\"contract.methodName(args, gas, amount)\");\n deprecate(\"use `contract.methodName({ signerAccount, args, gas?, amount?, callbackUrl?, meta? })` instead\");\n args[0] = {\n args: args[0],\n gas: args[1],\n amount: args[2],\n };\n }\n if (abi) {\n validateArguments(args[0].args, abi, abiRoot);\n }\n return this._changeMethod(Object.assign({ methodName: name }, args[0]));\n })),\n });\n });\n }\n _changeMethod({ signerAccount, args, methodName, gas, amount, meta, callbackUrl, }) {\n return __awaiter(this, void 0, void 0, function* () {\n validateBNLike({ gas, amount });\n const account = this.account || signerAccount;\n if (!account)\n throw new Error(`signerAccount must be specified`);\n const rawResult = yield account.functionCall({\n contractId: this.contractId,\n methodName,\n args,\n gas,\n attachedDeposit: amount,\n walletMeta: meta,\n walletCallbackUrl: callbackUrl,\n });\n return (0, utils_1.getTransactionLastResult)(rawResult);\n });\n }\n}\nexports.Contract = Contract;\n/**\n * Throws if an argument is not in BigInt format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = \"number, decimal string or BigInt\";\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && typeof argValue !== \"bigint\" && isNaN(argValue)) {\n throw new types_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConflictingOptions = exports.ArgumentSchemaError = exports.UnknownArgumentError = exports.UnsupportedSerializationError = void 0;\nclass UnsupportedSerializationError extends Error {\n constructor(methodName, serializationType) {\n super(`Contract method '${methodName}' is using an unsupported serialization type ${serializationType}`);\n }\n}\nexports.UnsupportedSerializationError = UnsupportedSerializationError;\nclass UnknownArgumentError extends Error {\n constructor(actualArgName, expectedArgNames) {\n super(`Unrecognized argument '${actualArgName}', expected '${JSON.stringify(expectedArgNames)}'`);\n }\n}\nexports.UnknownArgumentError = UnknownArgumentError;\nclass ArgumentSchemaError extends Error {\n constructor(argName, errors) {\n super(`Argument '${argName}' does not conform to the specified ABI schema: '${JSON.stringify(errors)}'`);\n }\n}\nexports.ArgumentSchemaError = ArgumentSchemaError;\nclass ConflictingOptions extends Error {\n constructor() {\n super('Conflicting contract method options have been passed. You can either specify ABI or a list of view/call methods.');\n }\n}\nexports.ConflictingOptions = ConflictingOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = exports.Contract = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.Connection = exports.AccountMultisig = exports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = exports.Account2FA = exports.Account = void 0;\nvar account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nvar account_2fa_1 = require(\"./account_2fa\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return account_2fa_1.Account2FA; } });\nvar account_creator_1 = require(\"./account_creator\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return account_creator_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return account_creator_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return account_creator_1.UrlAccountCreator; } });\nvar account_multisig_1 = require(\"./account_multisig\");\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return account_multisig_1.AccountMultisig; } });\nvar connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return constants_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return constants_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return constants_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return constants_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CONFIRM_METHODS; } });\nvar contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return errors_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return errors_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return errors_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return errors_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return types_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return types_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalViewExecution = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst storage_1 = require(\"./storage\");\nconst runtime_1 = require(\"./runtime\");\nconst utils_2 = require(\"../utils\");\nclass LocalViewExecution {\n constructor(connection) {\n this.connection = connection.getConnection();\n this.storage = new storage_1.Storage();\n }\n fetchContractCode(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this.connection.provider.query(Object.assign({ request_type: 'view_code', account_id: contractId }, blockQuery));\n return result.code_base64;\n });\n }\n fetchContractState(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return (0, utils_2.viewState)(this.connection, contractId, '', blockQuery);\n });\n }\n fetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block(blockQuery);\n const blockHash = block.header.hash;\n const blockHeight = block.header.height;\n const blockTimestamp = block.header.timestamp;\n const contractCode = yield this.fetchContractCode(contractId, blockQuery);\n const contractState = yield this.fetchContractState(contractId, blockQuery);\n return {\n blockHash,\n blockHeight,\n blockTimestamp,\n contractCode,\n contractState,\n };\n });\n }\n loadOrFetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const stored = this.storage.load(blockQuery);\n if (stored) {\n return stored;\n }\n const _a = yield this.fetch(contractId, blockQuery), { blockHash } = _a, fetched = __rest(_a, [\"blockHash\"]);\n this.storage.save(blockHash, fetched);\n return fetched;\n });\n }\n /**\n * Calls a view function on a contract, fetching the contract code and state if needed.\n * @param options Options for calling the view function.\n * @param options.contractId The contract account ID.\n * @param options.methodName The name of the view function to call.\n * @param options.args The arguments to pass to the view function.\n * @param options.blockQuery The block query options.\n * @returns {Promise} - A promise that resolves to the result of the view function.\n */\n viewFunction(_a) {\n var { contractId, methodName, args = {}, blockQuery = { finality: 'optimistic' } } = _a, ignored = __rest(_a, [\"contractId\", \"methodName\", \"args\", \"blockQuery\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const methodArgs = JSON.stringify(args);\n const { contractCode, contractState, blockHeight, blockTimestamp } = yield this.loadOrFetch(contractId, blockQuery);\n const runtime = new runtime_1.Runtime({ contractId, contractCode, contractState, blockHeight, blockTimestamp, methodArgs });\n const { result, logs } = yield runtime.execute(methodName);\n if (logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs });\n }\n return JSON.parse(Buffer.from(result).toString());\n });\n }\n}\nexports.LocalViewExecution = LocalViewExecution;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Runtime = void 0;\nconst crypto_1 = require(\"crypto\");\nconst notImplemented = (name) => () => {\n throw new Error('method not implemented: ' + name);\n};\nconst prohibitedInView = (name) => () => {\n throw new Error('method not available for view calls: ' + name);\n};\nclass Runtime {\n constructor(_a) {\n var { contractCode } = _a, context = __rest(_a, [\"contractCode\"]);\n this.context = context;\n this.wasm = this.prepareWASM(Buffer.from(contractCode, 'base64'));\n this.memory = new WebAssembly.Memory({ initial: 1024, maximum: 2048 });\n this.registers = {};\n this.logs = [];\n this.result = Buffer.from([]);\n }\n readUTF16CStr(ptr) {\n const arr = [];\n const mem = new Uint16Array(this.memory.buffer);\n let key = Number(ptr) / 2;\n while (mem[key] != 0) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(Uint16Array.from(arr).buffer).toString('ucs2');\n }\n readUTF8CStr(len, ptr) {\n const arr = [];\n const mem = new Uint8Array(this.memory.buffer);\n let key = Number(ptr);\n for (let i = 0; i < len && mem[key] != 0; i++) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(arr).toString('utf8');\n }\n storageRead(keyLen, keyPtr) {\n const storageKey = Buffer.from(new Uint8Array(this.memory.buffer, Number(keyPtr), Number(keyLen)));\n const stateVal = this.context.contractState.filter((obj) => Buffer.compare(obj.key, storageKey) === 0).map((obj) => obj.value);\n if (stateVal.length === 0)\n return null;\n return stateVal.length > 1 ? stateVal : stateVal[0];\n }\n prepareWASM(input) {\n const parts = [];\n const magic = input.subarray(0, 4);\n if (magic.toString('utf8') !== '\\0asm') {\n throw new Error('Invalid magic number');\n }\n const version = input.readUInt32LE(4);\n if (version != 1) {\n throw new Error('Invalid version: ' + version);\n }\n let offset = 8;\n parts.push(input.subarray(0, offset));\n function decodeLEB128() {\n let result = 0;\n let shift = 0;\n let byte;\n do {\n byte = input[offset++];\n result |= (byte & 0x7f) << shift;\n shift += 7;\n } while (byte & 0x80);\n return result;\n }\n function decodeLimits() {\n const flags = input[offset++];\n const hasMax = flags & 0x1;\n const initial = decodeLEB128();\n const max = hasMax ? decodeLEB128() : null;\n return { initial, max };\n }\n function decodeString() {\n const length = decodeLEB128();\n const result = input.subarray(offset, offset + length);\n offset += length;\n return result.toString('utf8');\n }\n function encodeLEB128(value) {\n const result = [];\n do {\n let byte = value & 0x7f;\n value >>= 7;\n if (value !== 0) {\n byte |= 0x80;\n }\n result.push(byte);\n } while (value !== 0);\n return Buffer.from(result);\n }\n function encodeString(value) {\n const result = Buffer.from(value, 'utf8');\n return Buffer.concat([encodeLEB128(result.length), result]);\n }\n do {\n const sectionStart = offset;\n const sectionId = input.readUInt8(offset);\n offset++;\n const sectionSize = decodeLEB128();\n const sectionEnd = offset + sectionSize;\n if (sectionId == 5) {\n // Memory section\n // Make sure it's empty and only imported memory is used\n parts.push(Buffer.from([5, 1, 0]));\n }\n else if (sectionId == 2) {\n // Import section\n const sectionParts = [];\n const numImports = decodeLEB128();\n for (let i = 0; i < numImports; i++) {\n const importStart = offset;\n decodeString();\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n let skipImport = false;\n switch (kind) {\n case 0:\n // Function import\n decodeLEB128(); // index\n break;\n case 1:\n // Table import\n offset++; // type\n decodeLimits();\n break;\n case 2:\n // Memory import\n decodeLimits();\n // NOTE: existing memory import is removed (so no need to add it to sectionParts)\n skipImport = true;\n break;\n case 3:\n // Global import\n offset++; // type\n offset++; // mutability\n break;\n default:\n throw new Error('Invalid import kind: ' + kind);\n }\n if (!skipImport) {\n sectionParts.push(input.subarray(importStart, offset));\n }\n }\n const importMemory = Buffer.concat([\n encodeString('env'),\n encodeString('memory'),\n Buffer.from([2]),\n Buffer.from([0]),\n encodeLEB128(1),\n ]);\n sectionParts.push(importMemory);\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([2]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else if (sectionId == 7) {\n // Export section\n const sectionParts = [];\n const numExports = decodeLEB128();\n for (let i = 0; i < numExports; i++) {\n const exportStart = offset;\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n decodeLEB128();\n if (kind !== 2) {\n // Pass through all exports except memory\n sectionParts.push(input.subarray(exportStart, offset));\n }\n }\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([7]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else {\n parts.push(input.subarray(sectionStart, sectionEnd));\n }\n offset = sectionEnd;\n } while (offset < input.length);\n return Buffer.concat(parts);\n }\n // Host functions\n getRegisterLength(registerId) {\n return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER);\n }\n readFromRegister(registerId, ptr) {\n const mem = new Uint8Array(this.memory.buffer);\n mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr));\n }\n getCurrentAccountId(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.contractId);\n }\n inputMethodArgs(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs);\n }\n getBlockHeight() {\n return BigInt(this.context.blockHeight);\n }\n getBlockTimestamp() {\n return BigInt(this.context.blockTimestamp);\n }\n sha256(valueLen, valuePtr, registerId) {\n const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen));\n const hash = (0, crypto_1.createHash)('sha256');\n hash.update(value);\n this.registers[registerId.toString()] = hash.digest();\n }\n returnValue(valueLen, valuePtr) {\n this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)));\n }\n panic(message) {\n throw new Error('panic: ' + message);\n }\n abort(msg_ptr, filename_ptr, line, col) {\n const msg = this.readUTF16CStr(msg_ptr);\n const filename = this.readUTF16CStr(filename_ptr);\n const message = `${msg} ${filename}:${line}:${col}`;\n if (!msg || !filename) {\n throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.');\n }\n throw new Error('abort: ' + message);\n }\n appendToLog(len, ptr) {\n this.logs.push(this.readUTF8CStr(len, ptr));\n }\n readStorage(key_len, key_ptr, register_id) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n this.registers[register_id] = result;\n return BigInt(1);\n }\n hasStorageKey(key_len, key_ptr) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n return BigInt(1);\n }\n getHostImports() {\n return {\n register_len: this.getRegisterLength.bind(this),\n read_register: this.readFromRegister.bind(this),\n current_account_id: this.getCurrentAccountId.bind(this),\n input: this.inputMethodArgs.bind(this),\n block_index: this.getBlockHeight.bind(this),\n block_timestamp: this.getBlockTimestamp.bind(this),\n sha256: this.sha256.bind(this),\n value_return: this.returnValue.bind(this),\n abort: this.abort.bind(this),\n log_utf8: this.appendToLog.bind(this),\n log_utf16: this.appendToLog.bind(this),\n storage_read: this.readStorage.bind(this),\n storage_has_key: this.hasStorageKey.bind(this),\n panic: () => this.panic('explicit guest panic'),\n panic_utf8: (len, ptr) => this.panic(this.readUTF8CStr(len, ptr)),\n // Not implemented\n epoch_height: notImplemented('epoch_height'),\n storage_usage: notImplemented('storage_usage'),\n account_balance: notImplemented('account_balance'),\n account_locked_balance: notImplemented('account_locked_balance'),\n random_seed: notImplemented('random_seed'),\n ripemd160: notImplemented('ripemd160'),\n keccak256: notImplemented('keccak256'),\n keccak512: notImplemented('keccak512'),\n ecrecover: notImplemented('ecrecover'),\n validator_stake: notImplemented('validator_stake'),\n validator_total_stake: notImplemented('validator_total_stake'),\n // Prohibited\n write_register: prohibitedInView('write_register'),\n signer_account_id: prohibitedInView('signer_account_id'),\n signer_account_pk: prohibitedInView('signer_account_pk'),\n predecessor_account_id: prohibitedInView('predecessor_account_id'),\n attached_deposit: prohibitedInView('attached_deposit'),\n prepaid_gas: prohibitedInView('prepaid_gas'),\n used_gas: prohibitedInView('used_gas'),\n promise_create: prohibitedInView('promise_create'),\n promise_then: prohibitedInView('promise_then'),\n promise_and: prohibitedInView('promise_and'),\n promise_batch_create: prohibitedInView('promise_batch_create'),\n promise_batch_then: prohibitedInView('promise_batch_then'),\n promise_batch_action_create_account: prohibitedInView('promise_batch_action_create_account'),\n promise_batch_action_deploy_contract: prohibitedInView('promise_batch_action_deploy_contract'),\n promise_batch_action_function_call: prohibitedInView('promise_batch_action_function_call'),\n promise_batch_action_function_call_weight: prohibitedInView('promise_batch_action_function_call_weight'),\n promise_batch_action_transfer: prohibitedInView('promise_batch_action_transfer'),\n promise_batch_action_stake: prohibitedInView('promise_batch_action_stake'),\n promise_batch_action_add_key_with_full_access: prohibitedInView('promise_batch_action_add_key_with_full_access'),\n promise_batch_action_add_key_with_function_call: prohibitedInView('promise_batch_action_add_key_with_function_call'),\n promise_batch_action_delete_key: prohibitedInView('promise_batch_action_delete_key'),\n promise_batch_action_delete_account: prohibitedInView('promise_batch_action_delete_account'),\n promise_results_count: prohibitedInView('promise_results_count'),\n promise_result: prohibitedInView('promise_result'),\n promise_return: prohibitedInView('promise_return'),\n storage_write: prohibitedInView('storage_write'),\n storage_remove: prohibitedInView('storage_remove'),\n };\n }\n execute(methodName) {\n return __awaiter(this, void 0, void 0, function* () {\n const module = yield WebAssembly.compile(this.wasm);\n const instance = yield WebAssembly.instantiate(module, { env: Object.assign(Object.assign({}, this.getHostImports()), { memory: this.memory }) });\n const callMethod = instance.exports[methodName];\n if (callMethod == undefined) {\n throw new Error(`Contract method '${methodName}' does not exists in contract ${this.context.contractId} for block id ${this.context.blockHeight}`);\n }\n callMethod();\n return {\n result: this.result,\n logs: this.logs\n };\n });\n }\n}\nexports.Runtime = Runtime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = void 0;\nconst lru_map_1 = require(\"lru_map\");\nclass Storage {\n constructor(options = { max: Storage.MAX_ELEMENTS }) {\n this.cache = new lru_map_1.LRUMap(options.max);\n this.blockHeights = new Map();\n }\n load(blockRef) {\n const noBlockId = !('blockId' in blockRef);\n if (noBlockId)\n return undefined;\n let blockId = blockRef.blockId;\n // block hash is passed, so get its corresponding block height\n if (blockId.toString().length == 44) {\n blockId = this.blockHeights.get(blockId.toString());\n }\n // get cached values for the given block height\n return this.cache.get(blockId);\n }\n save(blockHash, { blockHeight, blockTimestamp, contractCode, contractState }) {\n this.blockHeights.set(blockHash, blockHeight);\n this.cache.set(blockHeight, { blockHeight, blockTimestamp, contractCode, contractState });\n }\n}\nexports.Storage = Storage;\nStorage.MAX_ELEMENTS = 100;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = void 0;\nvar MultisigDeleteRequestRejectionError;\n(function (MultisigDeleteRequestRejectionError) {\n MultisigDeleteRequestRejectionError[\"CANNOT_DESERIALIZE_STATE\"] = \"Cannot deserialize the contract state\";\n MultisigDeleteRequestRejectionError[\"MULTISIG_NOT_INITIALIZED\"] = \"Smart contract panicked: Multisig contract should be initialized before usage\";\n MultisigDeleteRequestRejectionError[\"NO_SUCH_REQUEST\"] = \"Smart contract panicked: panicked at 'No such request: either wrong number or already confirmed'\";\n MultisigDeleteRequestRejectionError[\"REQUEST_COOLDOWN_ERROR\"] = \"Request cannot be deleted immediately after creation.\";\n MultisigDeleteRequestRejectionError[\"METHOD_NOT_FOUND\"] = \"Contract method is not found\";\n})(MultisigDeleteRequestRejectionError = exports.MultisigDeleteRequestRejectionError || (exports.MultisigDeleteRequestRejectionError = {}));\nvar MultisigStateStatus;\n(function (MultisigStateStatus) {\n MultisigStateStatus[MultisigStateStatus[\"INVALID_STATE\"] = 0] = \"INVALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"STATE_NOT_INITIALIZED\"] = 1] = \"STATE_NOT_INITIALIZED\";\n MultisigStateStatus[MultisigStateStatus[\"VALID_STATE\"] = 2] = \"VALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"UNKNOWN_STATE\"] = 3] = \"UNKNOWN_STATE\";\n})(MultisigStateStatus = exports.MultisigStateStatus || (exports.MultisigStateStatus = {}));\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.viewFunction = exports.viewState = exports.encodeJSContractArgs = exports.validateArgs = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\nfunction bytesJsonStringify(input) {\n return Buffer.from(JSON.stringify(input));\n}\nfunction validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n}\nexports.validateArgs = validateArgs;\nfunction encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n}\nexports.encodeJSContractArgs = encodeJSContractArgs;\n/**\n * Returns the state (key value pairs) of account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param connection connection to query state from\n * @param accountId account whose state is viewed\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\nfunction viewState(connection, accountId, prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { values } = yield connection.provider.query(Object.assign(Object.assign({ request_type: 'view_state' }, blockQuery), { account_id: accountId, prefix_base64: Buffer.from(prefix).toString('base64') }));\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n });\n}\nexports.viewState = viewState;\n/**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\nfunction viewFunction(connection, { contractId, methodName, args = {}, parse = parseJsonFromRawResponse, stringify = bytesJsonStringify, jsContract = false, blockQuery = { finality: 'optimistic' } }) {\n return __awaiter(this, void 0, void 0, function* () {\n let encodedArgs;\n validateArgs(args);\n if (jsContract) {\n encodedArgs = encodeJSContractArgs(contractId, methodName, Object.keys(args).length > 0 ? JSON.stringify(args) : '');\n }\n else {\n encodedArgs = stringify(args);\n }\n const result = yield connection.provider.query(Object.assign(Object.assign({ request_type: 'call_function' }, blockQuery), { account_id: jsContract ? connection.jsvmAccountId : contractId, method_name: jsContract ? 'view_js_contract' : methodName, args_base64: encodedArgs.toString('base64') }));\n if (result.logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs: result.logs });\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n });\n}\nexports.viewFunction = viewFunction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeySize = exports.KeyType = void 0;\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nvar KeySize;\n(function (KeySize) {\n KeySize[KeySize[\"SECRET_KEY\"] = 32] = \"SECRET_KEY\";\n})(KeySize = exports.KeySize || (exports.KeySize = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyPairEd25519 = exports.KeyPair = exports.KeyType = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return constants_1.KeyType; } });\nvar key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nvar key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_ed25519_1.KeyPairEd25519; } });\nvar public_key_1 = require(\"./public_key\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return public_key_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPair = void 0;\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nclass KeyPair extends key_pair_base_1.KeyPairBase {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return key_pair_ed25519_1.KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n /**\n * Creates a key pair from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {KeyPair} The key pair created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new key_pair_ed25519_1.KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new key_pair_ed25519_1.KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairBase = void 0;\nclass KeyPairBase {\n}\nexports.KeyPairBase = KeyPairBase;\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.KeyPairEd25519 = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst randombytes_1 = __importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"./constants\");\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst public_key_1 = require(\"./public_key\");\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends key_pair_base_1.KeyPairBase {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param extendedSecretKey\n */\n constructor(extendedSecretKey) {\n super();\n const decoded = (0, utils_1.baseDecode)(extendedSecretKey);\n const secretKey = new Uint8Array(decoded.slice(0, constants_1.KeySize.SECRET_KEY));\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n this.publicKey = new public_key_1.PublicKey({ keyType: constants_1.KeyType.ED25519, data: publicKey });\n this.secretKey = (0, utils_1.baseEncode)(secretKey);\n this.extendedSecretKey = extendedSecretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const secretKey = (0, randombytes_1.default)(constants_1.KeySize.SECRET_KEY);\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n const extendedSecretKey = new Uint8Array([...secretKey, ...publicKey]);\n return new KeyPairEd25519((0, utils_1.baseEncode)(extendedSecretKey));\n }\n /**\n * Signs a message using the key pair's secret key.\n * @param message The message to be signed.\n * @returns {Signature} The signature object containing the signature and the public key.\n */\n sign(message) {\n const signature = ed25519_1.ed25519.sign(message, (0, utils_1.baseDecode)(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n /**\n * Verifies the signature of a message using the key pair's public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n return this.publicKey.verify(message, signature);\n }\n /**\n * Returns a string representation of the key pair in the format 'ed25519:[extendedSecretKey]'.\n * @returns {string} The string representation of the key pair.\n */\n toString() {\n return `ed25519:${this.extendedSecretKey}`;\n }\n /**\n * Retrieves the public key associated with the key pair.\n * @returns {PublicKey} The public key.\n */\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst constants_1 = require(\"./constants\");\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case constants_1.KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return constants_1.KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends types_1.Assignable {\n /**\n * Creates a PublicKey instance from a string or an existing PublicKey instance.\n * @param value The string or PublicKey instance to create a PublicKey from.\n * @returns {PublicKey} The PublicKey instance.\n */\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n /**\n * Creates a PublicKey instance from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {PublicKey} The PublicKey instance created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n let publicKey;\n let keyType = constants_1.KeyType.ED25519;\n if (parts.length === 1) {\n publicKey = parts[0];\n }\n else if (parts.length === 2) {\n publicKey = parts[1];\n keyType = str_to_key_type(parts[0]);\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n const decodedPublicKey = (0, utils_1.baseDecode)(publicKey);\n if (decodedPublicKey.length !== constants_1.KeySize.SECRET_KEY) {\n throw new Error(`Invalid public key size (${decodedPublicKey.length}), must be ${constants_1.KeySize.SECRET_KEY}`);\n }\n return new PublicKey({ keyType, data: decodedPublicKey });\n }\n /**\n * Returns a string representation of the public key.\n * @returns {string} The string representation of the public key.\n */\n toString() {\n return `${key_type_to_str(this.keyType)}:${(0, utils_1.baseEncode)(this.data)}`;\n }\n /**\n * Verifies a message signature using the public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n switch (this.keyType) {\n case constants_1.KeyType.ED25519: return ed25519_1.ed25519.verify(signature, message, this.data);\n default: throw new Error(`Unknown key type ${this.keyType}`);\n }\n }\n}\nexports.PublicKey = PublicKey;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst signer_1 = require(\"./signer\");\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends signer_1.Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static fromKeyPair(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyStore = new keystores_1.InMemoryKeyStore();\n yield keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n });\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n createKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = crypto_1.KeyPair.fromRandom('ed25519');\n yield this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n });\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise} Returns the public key or null if not found\n */\n getPublicKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n });\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n signMessage(message, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n });\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar in_memory_signer_1 = require(\"./in_memory_signer\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return in_memory_signer_1.InMemorySigner; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = void 0;\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.actionCreators = exports.stringifyJsonOrBytes = void 0;\nconst actions_1 = require(\"./actions\");\n/**\n * Creates a full access key with full access permissions.\n * @returns A new full access key.\n */\nfunction fullAccessKey() {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n fullAccess: new actions_1.FullAccessPermission({}),\n }),\n });\n}\n/**\n * Creates an access key with function call permission for a specific receiver and method names.\n * @param receiverId The NEAR account ID of the function call receiver.\n * @param methodNames An array of method names allowed for function calls.\n * @param allowance An optional allowance (maximum amount) for the function call. Default: Unlimited.\n * @returns A new access key with function call permission.\n */\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n functionCall: new actions_1.FunctionCallPermission({\n receiverId,\n allowance,\n methodNames,\n }),\n }),\n });\n}\n/**\n * Creates a new action for creating a new NEAR account.\n * @returns A new action for creating a new account.\n */\nfunction createAccount() {\n return new actions_1.Action({ createAccount: new actions_1.CreateAccount({}) });\n}\n/**\n * Creates a new action for deploying a contract with the provided code.\n * @param code The Uint8Array representing the code of the contract.\n * @returns A new action for deploying a contract.\n */\nfunction deployContract(code) {\n return new actions_1.Action({ deployContract: new actions_1.DeployContract({ code }) });\n}\n/**\n * Converts an input argument to a Buffer, handling cases for both JSON and Uint8Array.\n * @param args The input argument, either JSON object or Uint8Array.\n * @returns A Buffer representation of the input argument.\n */\nfunction stringifyJsonOrBytes(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n return isUint8Array ? args : Buffer.from(JSON.stringify(args));\n}\nexports.stringifyJsonOrBytes = stringifyJsonOrBytes;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @param stringify Convert input arguments into bytes array.\n * @param jsContract Is contract from JS SDK, skips stringification of arguments.\n */\nfunction functionCall(methodName, args, gas = BigInt(0), deposit = BigInt(0), stringify = stringifyJsonOrBytes, jsContract = false) {\n if (jsContract) {\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({ methodName, args, gas, deposit }),\n });\n }\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({\n methodName,\n args: stringify(args),\n gas,\n deposit,\n }),\n });\n}\n/**\n * Creates a new action for transferring funds, optionally specifying a deposit amount.\n * @param deposit The amount to be deposited along with the transfer. Default: 0.\n * @returns A new action for transferring funds.\n */\nfunction transfer(deposit = BigInt(0)) {\n return new actions_1.Action({ transfer: new actions_1.Transfer({ deposit }) });\n}\n/**\n * Creates a new action for staking tokens, specifying the stake amount and public key.\n * @param stake The amount to be staked. Default: 0.\n * @param publicKey The public key associated with the staking action.\n * @returns A new action for staking tokens.\n */\nfunction stake(stake = BigInt(0), publicKey) {\n return new actions_1.Action({ stake: new actions_1.Stake({ stake, publicKey }) });\n}\n/**\n * Creates a new action for adding a public key with a specified access key.\n * @param publicKey The public key to be added.\n * @param accessKey The access key associated with the added public key.\n * @returns A new action for adding a public key.\n */\nfunction addKey(publicKey, accessKey) {\n return new actions_1.Action({ addKey: new actions_1.AddKey({ publicKey, accessKey }) });\n}\n/**\n * Creates a new action for deleting a public key.\n * @param publicKey The public key to be deleted.\n * @returns A new action for deleting a public key.\n */\nfunction deleteKey(publicKey) {\n return new actions_1.Action({ deleteKey: new actions_1.DeleteKey({ publicKey }) });\n}\n/**\n * Creates a new action for deleting an account with the specified beneficiary ID.\n * @param beneficiaryId The NEAR account ID of the beneficiary.\n * @returns A new action for deleting an account.\n */\nfunction deleteAccount(beneficiaryId) {\n return new actions_1.Action({ deleteAccount: new actions_1.DeleteAccount({ beneficiaryId }) });\n}\n/**\n * Creates a new action for a signed delegation, specifying the delegate action and signature.\n * @param delegateAction The delegate action to be performed.\n * @param signature The signature associated with the delegate action.\n * @returns A new action for a signed delegation.\n */\nfunction signedDelegate({ delegateAction, signature, }) {\n return new actions_1.Action({\n signedDelegate: new actions_1.SignedDelegate({ delegateAction, signature }),\n });\n}\nexports.actionCreators = {\n addKey,\n createAccount,\n deleteAccount,\n deleteKey,\n deployContract,\n fullAccessKey,\n functionCall,\n functionCallAccessKey,\n signedDelegate,\n stake,\n transfer,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.SignedDelegate = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nclass FunctionCallPermission extends types_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends types_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends types_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nclass IAction extends types_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nclass SignedDelegate extends IAction {\n}\nexports.SignedDelegate = SignedDelegate;\n/**\n * Contains a list of the valid transaction Actions available with this API\n * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec}\n */\nclass Action extends Enum {\n}\nexports.Action = Action;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransaction = void 0;\nconst schema_1 = require(\"./schema\");\n/**\n * Creates a new transaction object with the provided parameters.\n * @param signerId The NEAR account ID of the transaction signer.\n * @param publicKey The public key associated with the signer.\n * @param receiverId The NEAR account ID of the transaction receiver.\n * @param nonce The nonce value for the transaction, represented as a BN, string, or number.\n * @param actions An array of transaction actions to be performed.\n * @param blockHash The hash of the block where the transaction will be included.\n * @returns A new transaction object initialized with the provided parameters.\n */\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n const txNonce = typeof nonce === 'bigint' ? nonce : BigInt(nonce);\n return new schema_1.Transaction({\n signerId,\n publicKey,\n nonce: txNonce,\n receiverId,\n actions,\n blockHash,\n });\n}\nexports.createTransaction = createTransaction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDelegateAction = exports.DelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst action_creators_1 = require(\"./action_creators\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer, } = action_creators_1.actionCreators;\nclass DelegateAction extends types_1.Assignable {\n}\nexports.DelegateAction = DelegateAction;\n/**\n * Compose a delegate action for inclusion with a meta transaction signed on the sender's behalf\n * @param actions The set of actions to be included in the meta transaction\n * @param maxBlockHeight The maximum block height for which this action can be executed as part of a transaction\n * @param nonce Current nonce on the access key used to sign the delegate action\n * @param publicKey Public key for the access key used to sign the delegate action\n * @param receiverId Account ID for the intended receiver of the meta transaction\n * @param senderId Account ID for the intended signer of the delegate action\n */\nfunction buildDelegateAction({ actions, maxBlockHeight, nonce, publicKey, receiverId, senderId, }) {\n return new DelegateAction({\n senderId,\n receiverId,\n actions: actions.map((a) => {\n // @ts-expect-error type workaround\n if (!a.type && !a.params) {\n return a;\n }\n // @ts-expect-error type workaround\n switch (a.type) {\n case 'AddKey': {\n // @ts-expect-error type workaround\n const { publicKey, accessKey } = a.params;\n return addKey(publicKey, accessKey);\n }\n case 'CreateAccount': {\n // @ts-expect-error type workaround\n return createAccount(a.params.createAccount);\n }\n case 'DeleteAccount': {\n // @ts-expect-error type workaround\n return deleteAccount(a.params.deleteAccount);\n }\n case 'DeleteKey': {\n // @ts-expect-error type workaround\n return deleteKey(a.params.publicKey);\n }\n case 'DeployContract': {\n // @ts-expect-error type workaround\n return deployContract(a.params.code);\n }\n case 'FunctionCall': {\n // @ts-expect-error type workaround\n const { methodName, args, gas, deposit } = a.params;\n return functionCall(methodName, args, gas, deposit);\n }\n case 'Stake': {\n // @ts-expect-error type workaround\n return stake(a.params.stake, a.params.publicKey);\n }\n case 'Transfer': {\n // @ts-expect-error type workaround\n const { deposit } = a.params;\n return transfer(deposit);\n }\n }\n throw new Error('Unrecognized action');\n }),\n nonce,\n maxBlockHeight,\n publicKey,\n });\n}\nexports.buildDelegateAction = buildDelegateAction;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./action_creators\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./create_transaction\"), exports);\n__exportStar(require(\"./delegate\"), exports);\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./sign\"), exports);\n__exportStar(require(\"./signature\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelegateActionPrefix = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst ACTIONABLE_MESSAGE_BASE = Math.pow(2, 30);\n// const NON_ACTIONABLE_MESSAGE_BASE = Math.pow(2, 31);\n/** The set of NEPs for which an [NEP-461](https://github.com/near/NEPs/pull/461) prefix is required on the message prior to hashing **/\nconst NEP = {\n MetaTransactions: 366,\n};\n/** Base class for NEP message prefixes **/\nclass NEPPrefix extends types_1.Assignable {\n}\n/** Class for constructing prefixes on actionable (on-chain) messages **/\nclass ActionableMessagePrefix extends NEPPrefix {\n /** Given the NEP number, set the prefix using 2^30 as the offset **/\n constructor(prefix) {\n super({ prefix: ACTIONABLE_MESSAGE_BASE + prefix });\n }\n}\n/**\n * Class for constructing prefixes on non-actionable (off-chain) messages\n * @todo uncomment when off-chain messages are supported\n * **/\n// abstract class NonActionableMessagePrefix extends NEPPrefix {\n// /** Given the NEP number, set the prefix using 2^31 as the offset **/\n// protected constructor(prefix: number) {\n// super({ prefix: NON_ACTIONABLE_MESSAGE_BASE + prefix });\n// }\n// }\n/** Prefix for delegate actions whose signatures must always be distinguishable from valid transaction signatures **/\nclass DelegateActionPrefix extends ActionableMessagePrefix {\n constructor() { super(NEP.MetaTransactions); }\n}\nexports.DelegateActionPrefix = DelegateActionPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCHEMA = exports.SignedTransaction = exports.Transaction = exports.decodeSignedTransaction = exports.decodeTransaction = exports.encodeTransaction = exports.encodeSignedDelegate = exports.encodeDelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst borsh_1 = require(\"borsh\");\nconst prefix_1 = require(\"./prefix\");\n/**\n * Borsh-encode a delegate action for inclusion as an action within a meta transaction\n * NB per NEP-461 this requires a Borsh-serialized prefix specific to delegate actions, ensuring\n * signed delegate actions may never be identical to signed transactions with the same fields\n * @param delegateAction Delegate action to be signed by the meta transaction sender\n */\nfunction encodeDelegateAction(delegateAction) {\n return new Uint8Array([\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateActionPrefix, new prefix_1.DelegateActionPrefix()),\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateAction, delegateAction),\n ]);\n}\nexports.encodeDelegateAction = encodeDelegateAction;\n/**\n * Borsh-encode a signed delegate for validation and execution by a relayer\n * @param signedDelegate Signed delegate to be executed in a meta transaction\n */\nfunction encodeSignedDelegate(signedDelegate) {\n return (0, borsh_1.serialize)(exports.SCHEMA.SignedDelegate, signedDelegate);\n}\nexports.encodeSignedDelegate = encodeSignedDelegate;\n/**\n* Borsh-encode a transaction or signed transaction into a serialized form.\n* @param transaction The transaction or signed transaction object to be encoded.\n* @returns A serialized representation of the input transaction.\n*/\nfunction encodeTransaction(transaction) {\n const schema = transaction instanceof SignedTransaction ? exports.SCHEMA.SignedTransaction : exports.SCHEMA.Transaction;\n return (0, borsh_1.serialize)(schema, transaction);\n}\nexports.encodeTransaction = encodeTransaction;\n/**\n * Borsh-decode a Transaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeTransaction(bytes) {\n return new Transaction((0, borsh_1.deserialize)(exports.SCHEMA.Transaction, bytes));\n}\nexports.decodeTransaction = decodeTransaction;\n/**\n * Borsh-decode a SignedTransaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeSignedTransaction(bytes) {\n return new SignedTransaction((0, borsh_1.deserialize)(exports.SCHEMA.SignedTransaction, bytes));\n}\nexports.decodeSignedTransaction = decodeSignedTransaction;\nclass Transaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeTransaction(bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeSignedTransaction(bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\nexports.SCHEMA = new class BorshSchema {\n constructor() {\n this.Signature = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 64 } },\n }\n };\n this.PublicKey = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 32 } },\n }\n };\n this.FunctionCallPermission = {\n struct: {\n allowance: { option: 'u128' },\n receiverId: 'string',\n methodNames: { array: { type: 'string' } },\n }\n };\n this.FullAccessPermission = {\n struct: {}\n };\n this.AccessKeyPermission = {\n enum: [\n { struct: { functionCall: this.FunctionCallPermission } },\n { struct: { fullAccess: this.FullAccessPermission } },\n ]\n };\n this.AccessKey = {\n struct: {\n nonce: 'u64',\n permission: this.AccessKeyPermission,\n }\n };\n this.CreateAccount = {\n struct: {}\n };\n this.DeployContract = {\n struct: {\n code: { array: { type: 'u8' } },\n }\n };\n this.FunctionCall = {\n struct: {\n methodName: 'string',\n args: { array: { type: 'u8' } },\n gas: 'u64',\n deposit: 'u128',\n }\n };\n this.Transfer = {\n struct: {\n deposit: 'u128',\n }\n };\n this.Stake = {\n struct: {\n stake: 'u128',\n publicKey: this.PublicKey,\n }\n };\n this.AddKey = {\n struct: {\n publicKey: this.PublicKey,\n accessKey: this.AccessKey,\n }\n };\n this.DeleteKey = {\n struct: {\n publicKey: this.PublicKey,\n }\n };\n this.DeleteAccount = {\n struct: {\n beneficiaryId: 'string',\n }\n };\n this.DelegateActionPrefix = {\n struct: {\n prefix: 'u32',\n }\n };\n this.ClassicActions = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n ]\n };\n this.DelegateAction = {\n struct: {\n senderId: 'string',\n receiverId: 'string',\n actions: { array: { type: this.ClassicActions } },\n nonce: 'u64',\n maxBlockHeight: 'u64',\n publicKey: this.PublicKey,\n }\n };\n this.SignedDelegate = {\n struct: {\n delegateAction: this.DelegateAction,\n signature: this.Signature,\n }\n };\n this.Action = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n { struct: { signedDelegate: this.SignedDelegate } },\n ]\n };\n this.Transaction = {\n struct: {\n signerId: 'string',\n publicKey: this.PublicKey,\n nonce: 'u64',\n receiverId: 'string',\n blockHash: { array: { type: 'u8', len: 32 } },\n actions: { array: { type: this.Action } },\n }\n };\n this.SignedTransaction = {\n struct: {\n transaction: this.Transaction,\n signature: this.Signature,\n }\n };\n }\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signDelegateAction = exports.signTransaction = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst actions_1 = require(\"./actions\");\nconst create_transaction_1 = require(\"./create_transaction\");\nconst schema_1 = require(\"./schema\");\nconst signature_1 = require(\"./signature\");\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nfunction signTransactionObject(transaction, signer, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeTransaction)(transaction);\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n const signature = yield signer.signMessage(message, accountId, networkId);\n const signedTx = new schema_1.SignedTransaction({\n transaction,\n signature: new signature_1.Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n });\n}\nfunction signTransaction(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (args[0].constructor === schema_1.Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = yield signer.getPublicKey(accountId, networkId);\n const transaction = (0, create_transaction_1.createTransaction)(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n });\n}\nexports.signTransaction = signTransaction;\n/**\n * Sign a delegate action\n * @options SignDelegate options\n * @param options.delegateAction Delegate action to be signed by the meta transaction sender\n * @param options.signer Signer instance for the meta transaction sender\n */\nfunction signDelegateAction({ delegateAction, signer }) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeDelegateAction)(delegateAction);\n const signature = yield signer.sign(message);\n const signedDelegateAction = new actions_1.SignedDelegate({\n delegateAction,\n signature: new signature_1.Signature({\n keyType: delegateAction.publicKey.keyType,\n data: signature,\n }),\n });\n return {\n hash: new Uint8Array((0, sha256_1.sha256)(message)),\n signedDelegateAction,\n };\n });\n}\nexports.signDelegateAction = signDelegateAction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signature = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Signature extends types_1.Assignable {\n}\nexports.Signature = Signature;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = BigInt('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = BigInt(10) ** BigInt(exports.NEAR_NOMINATION_EXP);\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = BigInt(10);\nfor (let i = 0, offset = BigInt(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset * BN10) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n let balanceBN = BigInt(balance);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN += ROUNDING_OFFSETS[roundingExp];\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || \"0\";\n const fractionStr = balance\n .substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, \"0\")\n .substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split(\".\");\n const wholePart = split[0];\n const fracPart = split[1] || \"\";\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, \"0\"));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, \"\").trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, \"\");\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, \"\");\n if (value === \"\") {\n return \"0\";\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, \"$1,$2\");\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBigIntAsc = void 0;\nfunction sortBigIntAsc(a, b) {\n return (a < b ? -1 : a > b ? 1 : 0);\n}\nexports.sortBigIntAsc = sortBigIntAsc;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst utils_1 = require(\"./utils\");\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const num = BigInt(numSeats);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (stakesSum < num) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = BigInt(1), right = stakesSum + BigInt(1);\n while (left !== right - BigInt(1)) {\n const mid = (left + right) / BigInt(2);\n let found = false;\n let currentSum = BigInt(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum + (stakes[i] / mid);\n if (currentSum >= num) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (validators.length < maxNumberOfSeats) {\n return stakesSum * BigInt(minimumStakeRatio[0]) / BigInt(minimumStakeRatio[1]);\n }\n else {\n return stakes[0] + BigInt(1);\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (psz < source.length) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","\"use strict\";\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.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.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nconst textDecoder = new ResolvedTextDecoder(\"utf-8\", { fatal: true });\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n value = Buffer.from(value, \"utf8\");\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([\n Buffer.from(this.buf.subarray(0, this.length)),\n buffer,\n Buffer.alloc(INITIAL_LENGTH),\n ]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, \"utf8\");\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n throw new BorshError(\"Reached the end of buffer when deserializing\");\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, \"le\");\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, \"le\");\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, \"le\");\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, \"le\");\n }\n readBuffer(len) {\n if (this.offset + len > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === \"string\") {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n if (value.length !== fieldType[1]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n }\n for (let i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n }\n else {\n writer.writeArray(value, (item) => {\n serializeField(schema, fieldName, item, fieldType[0], writer);\n });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case \"option\": {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n case \"map\": {\n writer.writeU32(value.size);\n value.forEach((val, key) => {\n serializeField(schema, fieldName, key, fieldType.key, writer);\n serializeField(schema, fieldName, val, fieldType.value, writer);\n });\n break;\n }\n default:\n throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === \"function\") {\n obj.borshSerialize(writer);\n return;\n }\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === \"enum\") {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n const writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === \"string\") {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === \"number\") {\n return reader.readFixedArray(fieldType[0]);\n }\n else if (typeof fieldType[1] === \"number\") {\n const arr = [];\n for (let i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n return arr;\n }\n else {\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n }\n if (fieldType.kind === \"option\") {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n if (fieldType.kind === \"map\") {\n let map = new Map();\n const length = reader.readU32();\n for (let i = 0; i < length; i++) {\n const key = deserializeField(schema, fieldName, fieldType.key, reader);\n const val = deserializeField(schema, fieldName, fieldType.value, reader);\n map.set(key, val);\n }\n return map;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === \"function\") {\n return classType.borshDeserialize(reader);\n }\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === \"struct\") {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === \"enum\") {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint = {\n x: T;\n y: T;\n} & { z?: never; t?: never };\n\nexport interface Group> {\n double(): T;\n negate(): T;\n add(other: T): T;\n subtract(other: T): T;\n equals(other: T): boolean;\n multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor = {\n BASE: T;\n ZERO: T;\n};\nexport type Mapper = (i: T[]) => T[];\n\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF>(c: GroupConstructor, bits: number) {\n const constTimeNegate = (condition: boolean, item: T): T => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W: number) => {\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm: T, n: bigint) {\n let p = c.ZERO;\n let d: T = elm;\n while (n > _0n) {\n if (n & _1n) p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm: T, W: number): Group[] {\n const { windows, windowSize } = opts(W);\n const points: T[] = [];\n let p: T = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =1, because we skip zero\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W: number, precomputes: T[], n: bigint): { p: T; f: T } {\n // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n\n let p = c.ZERO;\n let f = c.BASE;\n\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n\n // Shift number by W bits.\n n >>= shiftBy;\n\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n\n // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n } else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n\n wNAFCached(P: T, precomputesMap: Map, n: bigint, transform: Mapper): { p: T; f: T } {\n // @ts-ignore\n const W: number = P._WINDOW_SIZE || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = precomputesMap.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W) as T[];\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\n };\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve = {\n Fp: IField; // Field over which we'll do calculations (Fp)\n n: bigint; // Curve order, total count of valid points in the field\n nBitLength?: number; // bit length of curve order\n nByteLength?: number; // byte length of curve order\n h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n hEff?: bigint; // Number to multiply to clear cofactor\n Gx: T; // base point X coordinate\n Gy: T; // base point Y coordinate\n allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic(curve: BasicCurve & T) {\n validateField(curve.Fp);\n validateObject(\n curve,\n {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n },\n {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n }\n );\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n } as const);\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y²\nimport { mod } from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes, FHash, Hex } from './utils.js';\nimport { Group, GroupConstructor, wNAF, BasicCurve, validateBasic, AffinePoint } from './curve.js';\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _8n = BigInt(8);\n\n// Edwards curves must declare params a & d.\nexport type CurveType = BasicCurve & {\n a: bigint; // curve param a\n d: bigint; // curve param d\n hash: FHash; // Hashing\n randomBytes: (bytesLength?: number) => Uint8Array; // CSPRNG\n adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array; // clears bits to get valid field elemtn\n domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array; // Used for hashing\n uvRatio?: (u: bigint, v: bigint) => { isValid: boolean; value: bigint }; // Ratio √(u/v)\n prehash?: FHash; // RFC 8032 pre-hashing of messages to sign() / verify()\n mapToCurve?: (scalar: bigint[]) => AffinePoint; // for hash-to-curve standard\n};\n\n// verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex:\nconst VERIFY_DEFAULT = { zip215: true };\n\nfunction validateOpts(curve: CurveType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n curve,\n {\n hash: 'function',\n a: 'bigint',\n d: 'bigint',\n randomBytes: 'function',\n },\n {\n adjustScalarBytes: 'function',\n domain: 'function',\n uvRatio: 'function',\n mapToCurve: 'function',\n }\n );\n // Set defaults\n return Object.freeze({ ...opts } as const);\n}\n\n// Instance of Extended Point with coordinates in X, Y, Z, T\nexport interface ExtPointType extends Group {\n readonly ex: bigint;\n readonly ey: bigint;\n readonly ez: bigint;\n readonly et: bigint;\n get x(): bigint;\n get y(): bigint;\n assertValidity(): void;\n multiply(scalar: bigint): ExtPointType;\n multiplyUnsafe(scalar: bigint): ExtPointType;\n isSmallOrder(): boolean;\n isTorsionFree(): boolean;\n clearCofactor(): ExtPointType;\n toAffine(iz?: bigint): AffinePoint;\n toRawBytes(isCompressed?: boolean): Uint8Array;\n toHex(isCompressed?: boolean): string;\n}\n// Static methods of Extended Point with coordinates in X, Y, Z, T\nexport interface ExtPointConstructor extends GroupConstructor {\n new (x: bigint, y: bigint, z: bigint, t: bigint): ExtPointType;\n fromAffine(p: AffinePoint): ExtPointType;\n fromHex(hex: Hex): ExtPointType;\n fromPrivateKey(privateKey: Hex): ExtPointType;\n}\n\nexport type CurveFn = {\n CURVE: ReturnType;\n getPublicKey: (privateKey: Hex) => Uint8Array;\n sign: (message: Hex, privateKey: Hex, options?: { context?: Hex }) => Uint8Array;\n verify: (\n sig: Hex,\n message: Hex,\n publicKey: Hex,\n options?: { context?: Hex; zip215: boolean }\n ) => boolean;\n ExtendedPoint: ExtPointConstructor;\n utils: {\n randomPrivateKey: () => Uint8Array;\n getExtendedPublicKey: (key: Hex) => {\n head: Uint8Array;\n prefix: Uint8Array;\n scalar: bigint;\n point: ExtPointType;\n pointBytes: Uint8Array;\n };\n };\n};\n\n// It is not generic twisted curve for now, but ed25519/ed448 generic implementation\nexport function twistedEdwards(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef) as ReturnType;\n const {\n Fp,\n n: CURVE_ORDER,\n prehash: prehash,\n hash: cHash,\n randomBytes,\n nByteLength,\n h: cofactor,\n } = CURVE;\n const MASK = _2n << (BigInt(nByteLength * 8) - _1n);\n const modP = Fp.create; // Function overrides\n\n // sqrt(u/v)\n const uvRatio =\n CURVE.uvRatio ||\n ((u: bigint, v: bigint) => {\n try {\n return { isValid: true, value: Fp.sqrt(u * Fp.inv(v)) };\n } catch (e) {\n return { isValid: false, value: _0n };\n }\n });\n const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes: Uint8Array) => bytes); // NOOP\n const domain =\n CURVE.domain ||\n ((data: Uint8Array, ctx: Uint8Array, phflag: boolean) => {\n if (ctx.length || phflag) throw new Error('Contexts/pre-hash are not supported');\n return data;\n }); // NOOP\n const inBig = (n: bigint) => typeof n === 'bigint' && _0n < n; // n in [1..]\n const inRange = (n: bigint, max: bigint) => inBig(n) && inBig(max) && n < max; // n in [1..max-1]\n const in0MaskRange = (n: bigint) => n === _0n || inRange(n, MASK); // n in [0..MASK-1]\n function assertInRange(n: bigint, max: bigint) {\n // n in [1..max-1]\n if (inRange(n, max)) return n;\n throw new Error(`Expected valid scalar < ${max}, got ${typeof n} ${n}`);\n }\n function assertGE0(n: bigint) {\n // n in [0..CURVE_ORDER-1]\n return n === _0n ? n : assertInRange(n, CURVE_ORDER); // GE = prime subgroup, not full group\n }\n const pointPrecomputes = new Map();\n function isPoint(other: unknown) {\n if (!(other instanceof Point)) throw new Error('ExtendedPoint expected');\n }\n // Extended Point works in extended coordinates: (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy).\n // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates\n class Point implements ExtPointType {\n static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, _1n, modP(CURVE.Gx * CURVE.Gy));\n static readonly ZERO = new Point(_0n, _1n, _1n, _0n); // 0, 1, 1, 0\n\n constructor(\n readonly ex: bigint,\n readonly ey: bigint,\n readonly ez: bigint,\n readonly et: bigint\n ) {\n if (!in0MaskRange(ex)) throw new Error('x required');\n if (!in0MaskRange(ey)) throw new Error('y required');\n if (!in0MaskRange(ez)) throw new Error('z required');\n if (!in0MaskRange(et)) throw new Error('t required');\n }\n\n get x(): bigint {\n return this.toAffine().x;\n }\n get y(): bigint {\n return this.toAffine().y;\n }\n\n static fromAffine(p: AffinePoint): Point {\n if (p instanceof Point) throw new Error('extended point not allowed');\n const { x, y } = p || {};\n if (!in0MaskRange(x) || !in0MaskRange(y)) throw new Error('invalid affine point');\n return new Point(x, y, _1n, modP(x * y));\n }\n static normalizeZ(points: Point[]): Point[] {\n const toInv = Fp.invertBatch(points.map((p) => p.ez));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n _WINDOW_SIZE?: number;\n\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize: number) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // Not required for fromHex(), which always creates valid points.\n // Could be useful for fromAffine().\n assertValidity(): void {\n const { a, d } = CURVE;\n if (this.is0()) throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n // Equation in affine coordinates: ax² + y² = 1 + dx²y²\n // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²\n const { ex: X, ey: Y, ez: Z, et: T } = this;\n const X2 = modP(X * X); // X²\n const Y2 = modP(Y * Y); // Y²\n const Z2 = modP(Z * Z); // Z²\n const Z4 = modP(Z2 * Z2); // Z⁴\n const aX2 = modP(X2 * a); // aX²\n const left = modP(Z2 * modP(aX2 + Y2)); // (aX² + Y²)Z²\n const right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z⁴ + dX²Y²\n if (left !== right) throw new Error('bad point: equation left != right (1)');\n // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n const XY = modP(X * Y);\n const ZT = modP(Z * T);\n if (XY !== ZT) throw new Error('bad point: equation left != right (2)');\n }\n\n // Compare one point to another.\n equals(other: Point): boolean {\n isPoint(other);\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const { ex: X2, ey: Y2, ez: Z2 } = other;\n const X1Z2 = modP(X1 * Z2);\n const X2Z1 = modP(X2 * Z1);\n const Y1Z2 = modP(Y1 * Z2);\n const Y2Z1 = modP(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n\n protected is0(): boolean {\n return this.equals(Point.ZERO);\n }\n\n negate(): Point {\n // Flips point sign to a negative one (-x, y in affine coords)\n return new Point(modP(-this.ex), this.ey, this.ez, modP(-this.et));\n }\n\n // Fast algo for doubling Extended Point.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n // Cost: 4M + 4S + 1*a + 6add + 1*2.\n double(): Point {\n const { a } = CURVE;\n const { ex: X1, ey: Y1, ez: Z1 } = this;\n const A = modP(X1 * X1); // A = X12\n const B = modP(Y1 * Y1); // B = Y12\n const C = modP(_2n * modP(Z1 * Z1)); // C = 2*Z12\n const D = modP(a * A); // D = a*A\n const x1y1 = X1 + Y1;\n const E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B\n const G = D + B; // G = D+B\n const F = G - C; // F = G-C\n const H = D - B; // H = D-B\n const X3 = modP(E * F); // X3 = E*F\n const Y3 = modP(G * H); // Y3 = G*H\n const T3 = modP(E * H); // T3 = E*H\n const Z3 = modP(F * G); // Z3 = F*G\n return new Point(X3, Y3, Z3, T3);\n }\n\n // Fast algo for adding 2 Extended Points.\n // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd\n // Cost: 9M + 1*a + 1*d + 7add.\n add(other: Point) {\n isPoint(other);\n const { a, d } = CURVE;\n const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this;\n const { ex: X2, ey: Y2, ez: Z2, et: T2 } = other;\n // Faster algo for adding 2 Extended Points when curve's a=-1.\n // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-4\n // Cost: 8M + 8add + 2*2.\n // Note: It does not check whether the `other` point is valid.\n if (a === BigInt(-1)) {\n const A = modP((Y1 - X1) * (Y2 + X2));\n const B = modP((Y1 + X1) * (Y2 - X2));\n const F = modP(B - A);\n if (F === _0n) return this.double(); // Same point. Tests say it doesn't affect timing\n const C = modP(Z1 * _2n * T2);\n const D = modP(T1 * _2n * Z2);\n const E = D + C;\n const G = B + A;\n const H = D - C;\n const X3 = modP(E * F);\n const Y3 = modP(G * H);\n const T3 = modP(E * H);\n const Z3 = modP(F * G);\n return new Point(X3, Y3, Z3, T3);\n }\n const A = modP(X1 * X2); // A = X1*X2\n const B = modP(Y1 * Y2); // B = Y1*Y2\n const C = modP(T1 * d * T2); // C = T1*d*T2\n const D = modP(Z1 * Z2); // D = Z1*Z2\n const E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B\n const F = D - C; // F = D-C\n const G = D + C; // G = D+C\n const H = modP(B - a * A); // H = B-a*A\n const X3 = modP(E * F); // X3 = E*F\n const Y3 = modP(G * H); // Y3 = G*H\n const T3 = modP(E * H); // T3 = E*H\n const Z3 = modP(F * G); // Z3 = F*G\n\n return new Point(X3, Y3, Z3, T3);\n }\n\n subtract(other: Point): Point {\n return this.add(other.negate());\n }\n\n private wNAF(n: bigint): { p: Point; f: Point } {\n return wnaf.wNAFCached(this, pointPrecomputes, n, Point.normalizeZ);\n }\n\n // Constant-time multiplication.\n multiply(scalar: bigint): Point {\n const { p, f } = this.wNAF(assertInRange(scalar, CURVE_ORDER));\n return Point.normalizeZ([p, f])[0];\n }\n\n // Non-constant-time multiplication. Uses double-and-add algorithm.\n // It's faster, but should only be used when you don't care about\n // an exposed private key e.g. sig verification.\n // Does NOT allow scalars higher than CURVE.n.\n multiplyUnsafe(scalar: bigint): Point {\n let n = assertGE0(scalar); // 0 <= scalar < CURVE.n\n if (n === _0n) return I;\n if (this.equals(I) || n === _1n) return this;\n if (this.equals(G)) return this.wNAF(n).p;\n return wnaf.unsafeLadder(this, n);\n }\n\n // Checks if point is of small order.\n // If you add something to small order point, you will have \"dirty\"\n // point with torsion component.\n // Multiplies point by cofactor and checks if the result is 0.\n isSmallOrder(): boolean {\n return this.multiplyUnsafe(cofactor).is0();\n }\n\n // Multiplies point by curve order and checks if the result is 0.\n // Returns `false` is the point is dirty.\n isTorsionFree(): boolean {\n return wnaf.unsafeLadder(this, CURVE_ORDER).is0();\n }\n\n // Converts Extended point to default (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n toAffine(iz?: bigint): AffinePoint {\n const { ex: x, ey: y, ez: z } = this;\n const is0 = this.is0();\n if (iz == null) iz = is0 ? _8n : (Fp.inv(z) as bigint); // 8 was chosen arbitrarily\n const ax = modP(x * iz);\n const ay = modP(y * iz);\n const zz = modP(z * iz);\n if (is0) return { x: _0n, y: _1n };\n if (zz !== _1n) throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n\n clearCofactor(): Point {\n const { h: cofactor } = CURVE;\n if (cofactor === _1n) return this;\n return this.multiplyUnsafe(cofactor);\n }\n\n // Converts hash string or Uint8Array to Point.\n // Uses algo from RFC8032 5.1.3.\n static fromHex(hex: Hex, zip215 = false): Point {\n const { d, a } = CURVE;\n const len = Fp.BYTES;\n hex = ensureBytes('pointHex', hex, len); // copy hex to a new array\n const normed = hex.slice(); // copy again, we'll manipulate it\n const lastByte = hex[len - 1]; // select last byte\n normed[len - 1] = lastByte & ~0x80; // clear last bit\n const y = ut.bytesToNumberLE(normed);\n if (y === _0n) {\n // y=0 is allowed\n } else {\n // RFC8032 prohibits >= p, but ZIP215 doesn't\n if (zip215) assertInRange(y, MASK); // zip215=true [1..P-1] (2^255-19-1 for ed25519)\n else assertInRange(y, Fp.ORDER); // zip215=false [1..MASK-1] (2^256-1 for ed25519)\n }\n\n // Ed25519: x² = (y²-1)/(dy²+1) mod p. Ed448: x² = (y²-1)/(dy²-1) mod p. Generic case:\n // ax²+y²=1+dx²y² => y²-1=dx²y²-ax² => y²-1=x²(dy²-a) => x²=(y²-1)/(dy²-a)\n const y2 = modP(y * y); // denominator is always non-0 mod p.\n const u = modP(y2 - _1n); // u = y² - 1\n const v = modP(d * y2 - a); // v = d y² + 1.\n let { isValid, value: x } = uvRatio(u, v); // √(u/v)\n if (!isValid) throw new Error('Point.fromHex: invalid y coordinate');\n const isXOdd = (x & _1n) === _1n; // There are 2 square roots. Use x_0 bit to select proper\n const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n if (!zip215 && x === _0n && isLastByteOdd)\n // if x=0 and x_0 = 1, fail\n throw new Error('Point.fromHex: x=0 and x_0=1');\n if (isLastByteOdd !== isXOdd) x = modP(-x); // if x_0 != x mod 2, set x = p-x\n return Point.fromAffine({ x, y });\n }\n static fromPrivateKey(privKey: Hex) {\n return getExtendedPublicKey(privKey).point;\n }\n toRawBytes(): Uint8Array {\n const { x, y } = this.toAffine();\n const bytes = ut.numberToBytesLE(y, Fp.BYTES); // each y has 2 x values (x, -y)\n bytes[bytes.length - 1] |= x & _1n ? 0x80 : 0; // when compressing, it's enough to store y\n return bytes; // and use the last byte to encode sign of x\n }\n toHex(): string {\n return ut.bytesToHex(this.toRawBytes()); // Same as toRawBytes, but returns string.\n }\n }\n const { BASE: G, ZERO: I } = Point;\n const wnaf = wNAF(Point, nByteLength * 8);\n\n function modN(a: bigint) {\n return mod(a, CURVE_ORDER);\n }\n // Little-endian SHA512 with modulo n\n function modN_LE(hash: Uint8Array): bigint {\n return modN(ut.bytesToNumberLE(hash));\n }\n\n /** Convenience method that creates public key and other stuff. RFC8032 5.1.5 */\n function getExtendedPublicKey(key: Hex) {\n const len = nByteLength;\n key = ensureBytes('private key', key, len);\n // Hash private key with curve's hash function to produce uniformingly random input\n // Check byte lengths: ensure(64, h(ensure(32, key)))\n const hashed = ensureBytes('hashed private key', cHash(key), 2 * len);\n const head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE\n const prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6)\n const scalar = modN_LE(head); // The actual private scalar\n const point = G.multiply(scalar); // Point on Edwards curve aka public key\n const pointBytes = point.toRawBytes(); // Uint8Array representation\n return { head, prefix, scalar, point, pointBytes };\n }\n\n // Calculates EdDSA pub key. RFC8032 5.1.5. Privkey is hashed. Use first half with 3 bits cleared\n function getPublicKey(privKey: Hex): Uint8Array {\n return getExtendedPublicKey(privKey).pointBytes;\n }\n\n // int('LE', SHA512(dom2(F, C) || msgs)) mod N\n function hashDomainToScalar(context: Hex = new Uint8Array(), ...msgs: Uint8Array[]) {\n const msg = ut.concatBytes(...msgs);\n return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash)));\n }\n\n /** Signs message with privateKey. RFC8032 5.1.6 */\n function sign(msg: Hex, privKey: Hex, options: { context?: Hex } = {}): Uint8Array {\n msg = ensureBytes('message', msg);\n if (prehash) msg = prehash(msg); // for ed25519ph etc.\n const { prefix, scalar, pointBytes } = getExtendedPublicKey(privKey);\n const r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)\n const R = G.multiply(r).toRawBytes(); // R = rG\n const k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M)\n const s = modN(r + k * scalar); // S = (r + k * s) mod L\n assertGE0(s); // 0 <= s < l\n const res = ut.concatBytes(R, ut.numberToBytesLE(s, Fp.BYTES));\n return ensureBytes('result', res, nByteLength * 2); // 64-byte signature\n }\n\n const verifyOpts: { context?: Hex; zip215?: boolean } = VERIFY_DEFAULT;\n function verify(sig: Hex, msg: Hex, publicKey: Hex, options = verifyOpts): boolean {\n const { context, zip215 } = options;\n const len = Fp.BYTES; // Verifies EdDSA signature against message and public key. RFC8032 5.1.7.\n sig = ensureBytes('signature', sig, 2 * len); // An extended group equation is checked.\n msg = ensureBytes('message', msg);\n if (prehash) msg = prehash(msg); // for ed25519ph, etc\n\n const s = ut.bytesToNumberLE(sig.slice(len, 2 * len));\n // zip215: true is good for consensus-critical apps and allows points < 2^256\n // zip215: false follows RFC8032 / NIST186-5 and restricts points to CURVE.p\n let A, R, SB;\n try {\n A = Point.fromHex(publicKey, zip215);\n R = Point.fromHex(sig.slice(0, len), zip215);\n SB = G.multiplyUnsafe(s); // 0 <= s < l is done inside\n } catch (error) {\n return false;\n }\n if (!zip215 && A.isSmallOrder()) return false;\n\n const k = hashDomainToScalar(context, R.toRawBytes(), A.toRawBytes(), msg);\n const RkA = R.add(A.multiplyUnsafe(k));\n // [8][S]B = [8]R + [8][k]A'\n return RkA.subtract(SB).clearCofactor().equals(Point.ZERO);\n }\n\n G._setWindowSize(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n\n const utils = {\n getExtendedPublicKey,\n // ed25519 private keys are uniform 32b. No need to check for modulo bias, like in secp256k1.\n randomPrivateKey: (): Uint8Array => randomBytes(Fp.BYTES),\n\n /**\n * We're doing scalar multiplication (used in getPublicKey etc) with precomputed BASE_POINT\n * values. This slows down first getPublicKey() by milliseconds (see Speed section),\n * but allows to speed-up subsequent getPublicKey() calls up to 20x.\n * @param windowSize 2, 4, 8, 16\n */\n precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3));\n return point;\n },\n };\n\n return {\n CURVE,\n getPublicKey,\n sign,\n verify,\n ExtendedPoint: Point,\n utils,\n };\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport type { Group, GroupConstructor, AffinePoint } from './curve.js';\nimport { mod, IField } from './modular.js';\nimport { bytesToNumberBE, CHash, concatBytes, utf8ToBytes, validateObject } from './utils.js';\n\n/**\n * * `DST` is a domain separation tag, defined in section 2.2.5\n * * `p` characteristic of F, where F is a finite field of characteristic p and order q = p^m\n * * `m` is extension degree (1 for prime fields)\n * * `k` is the target security target in bits (e.g. 128), from section 5.1\n * * `expand` is `xmd` (SHA2, SHA3, BLAKE) or `xof` (SHAKE, BLAKE-XOF)\n * * `hash` conforming to `utils.CHash` interface, with `outputLen` / `blockLen` props\n */\ntype UnicodeOrBytes = string | Uint8Array;\nexport type Opts = {\n DST: UnicodeOrBytes;\n p: bigint;\n m: number;\n k: number;\n expand: 'xmd' | 'xof';\n hash: CHash;\n};\n\nfunction validateDST(dst: UnicodeOrBytes): Uint8Array {\n if (dst instanceof Uint8Array) return dst;\n if (typeof dst === 'string') return utf8ToBytes(dst);\n throw new Error('DST must be Uint8Array or string');\n}\n\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nconst os2ip = bytesToNumberBE;\n\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value: number, length: number): Uint8Array {\n if (value < 0 || value >= 1 << (8 * length)) {\n throw new Error(`bad I2OSP call: value=${value} length=${length}`);\n }\n const res = Array.from({ length }).fill(0) as number[];\n for (let i = length - 1; i >= 0; i--) {\n res[i] = value & 0xff;\n value >>>= 8;\n }\n return new Uint8Array(res);\n}\n\nfunction strxor(a: Uint8Array, b: Uint8Array): Uint8Array {\n const arr = new Uint8Array(a.length);\n for (let i = 0; i < a.length; i++) {\n arr[i] = a[i] ^ b[i];\n }\n return arr;\n}\n\nfunction isBytes(item: unknown): void {\n if (!(item instanceof Uint8Array)) throw new Error('Uint8Array expected');\n}\nfunction isNum(item: unknown): void {\n if (!Number.isSafeInteger(item)) throw new Error('number expected');\n}\n\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nexport function expand_message_xmd(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n H: CHash\n): Uint8Array {\n isBytes(msg);\n isBytes(DST);\n isNum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n if (DST.length > 255) DST = H(concatBytes(utf8ToBytes('H2C-OVERSIZE-DST-'), DST));\n const { outputLen: b_in_bytes, blockLen: r_in_bytes } = H;\n const ell = Math.ceil(lenInBytes / b_in_bytes);\n if (ell > 255) throw new Error('Invalid xmd length');\n const DST_prime = concatBytes(DST, i2osp(DST.length, 1));\n const Z_pad = i2osp(0, r_in_bytes);\n const l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n const b = new Array(ell);\n const b_0 = H(concatBytes(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n b[0] = H(concatBytes(b_0, i2osp(1, 1), DST_prime));\n for (let i = 1; i <= ell; i++) {\n const args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n b[i] = H(concatBytes(...args));\n }\n const pseudo_random_bytes = concatBytes(...b);\n return pseudo_random_bytes.slice(0, lenInBytes);\n}\n\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n// a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nexport function expand_message_xof(\n msg: Uint8Array,\n DST: Uint8Array,\n lenInBytes: number,\n k: number,\n H: CHash\n): Uint8Array {\n isBytes(msg);\n isBytes(DST);\n isNum(lenInBytes);\n // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n if (DST.length > 255) {\n const dkLen = Math.ceil((2 * k) / 8);\n DST = H.create({ dkLen }).update(utf8ToBytes('H2C-OVERSIZE-DST-')).update(DST).digest();\n }\n if (lenInBytes > 65535 || DST.length > 255)\n throw new Error('expand_message_xof: invalid lenInBytes');\n return (\n H.create({ dkLen: lenInBytes })\n .update(msg)\n .update(i2osp(lenInBytes, 2))\n // 2. DST_prime = DST || I2OSP(len(DST), 1)\n .update(DST)\n .update(i2osp(DST.length, 1))\n .digest()\n );\n}\n\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nexport function hash_to_field(msg: Uint8Array, count: number, options: Opts): bigint[][] {\n validateObject(options, {\n DST: 'stringOrUint8Array',\n p: 'bigint',\n m: 'isSafeInteger',\n k: 'isSafeInteger',\n hash: 'hash',\n });\n const { p, k, m, hash, expand, DST: _DST } = options;\n isBytes(msg);\n isNum(count);\n const DST = validateDST(_DST);\n const log2p = p.toString(2).length;\n const L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n const len_in_bytes = count * m * L;\n let prb; // pseudo_random_bytes\n if (expand === 'xmd') {\n prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n } else if (expand === 'xof') {\n prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n } else if (expand === '_internal_pass') {\n // for internal tests only\n prb = msg;\n } else {\n throw new Error('expand must be \"xmd\" or \"xof\"');\n }\n const u = new Array(count);\n for (let i = 0; i < count; i++) {\n const e = new Array(m);\n for (let j = 0; j < m; j++) {\n const elm_offset = L * (j + i * m);\n const tv = prb.subarray(elm_offset, elm_offset + L);\n e[j] = mod(os2ip(tv), p);\n }\n u[i] = e;\n }\n return u;\n}\n\nexport function isogenyMap>(field: F, map: [T[], T[], T[], T[]]) {\n // Make same order as in spec\n const COEFF = map.map((i) => Array.from(i).reverse());\n return (x: T, y: T) => {\n const [xNum, xDen, yNum, yDen] = COEFF.map((val) =>\n val.reduce((acc, i) => field.add(field.mul(acc, x), i))\n );\n x = field.div(xNum, xDen); // xNum / xDen\n y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n return { x, y };\n };\n}\n\nexport interface H2CPoint extends Group> {\n add(rhs: H2CPoint): H2CPoint;\n toAffine(iz?: bigint): AffinePoint;\n clearCofactor(): H2CPoint;\n assertValidity(): void;\n}\n\nexport interface H2CPointConstructor extends GroupConstructor> {\n fromAffine(ap: AffinePoint): H2CPoint;\n}\n\nexport type MapToCurve = (scalar: bigint[]) => AffinePoint;\n\n// Separated from initialization opts, so users won't accidentally change per-curve parameters\n// (changing DST is ok!)\nexport type htfBasicOpts = { DST: UnicodeOrBytes };\n\nexport function createHasher(\n Point: H2CPointConstructor,\n mapToCurve: MapToCurve,\n def: Opts & { encodeDST?: UnicodeOrBytes }\n) {\n if (typeof mapToCurve !== 'function') throw new Error('mapToCurve() must be defined');\n return {\n // Encodes byte string to elliptic curve.\n // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n hashToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 2, { ...def, DST: def.DST, ...options } as Opts);\n const u0 = Point.fromAffine(mapToCurve(u[0]));\n const u1 = Point.fromAffine(mapToCurve(u[1]));\n const P = u0.add(u1).clearCofactor();\n P.assertValidity();\n return P;\n },\n\n // Encodes byte string to elliptic curve.\n // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n encodeToCurve(msg: Uint8Array, options?: htfBasicOpts) {\n const u = hash_to_field(msg, 1, { ...def, DST: def.encodeDST, ...options } as Opts);\n const P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n P.assertValidity();\n return P;\n },\n };\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n bitMask,\n numberToBytesBE,\n numberToBytesLE,\n bytesToNumberBE,\n bytesToNumberLE,\n ensureBytes,\n validateObject,\n} from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n) return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n) res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n\n let Q: bigint, S: number, Z: bigint;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++);\n\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++);\n\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp: IField, n: T): T {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE)) break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\n\nexport function FpSqrt(P: bigint) {\n // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n\n // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp: IField, n: T) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp: IField, n: T) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n // const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n // const c3 = Fp.sqrt(Fp.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, c4); // 1. tv1 = x^c4\n // let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n // const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n // let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n // const e1 = Fp.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 6. e2 = (tv3^2) == x\n // tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n // tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n // const e3 = Fp.equals(Fp.square(tv2), x); // 9. e3 = (tv2^2) == x\n // return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n // }\n }\n\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField {\n ORDER: bigint;\n BYTES: number;\n BITS: number;\n MASK: bigint;\n ZERO: T;\n ONE: T;\n // 1-arg\n create: (num: T) => T;\n isValid: (num: T) => boolean;\n is0: (num: T) => boolean;\n neg(num: T): T;\n inv(num: T): T;\n sqrt(num: T): T;\n sqr(num: T): T;\n // 2-args\n eql(lhs: T, rhs: T): boolean;\n add(lhs: T, rhs: T): T;\n sub(lhs: T, rhs: T): T;\n mul(lhs: T, rhs: T | bigint): T;\n pow(lhs: T, power: bigint): T;\n div(lhs: T, rhs: T | bigint): T;\n // N for NonNormalized (for now)\n addN(lhs: T, rhs: T): T;\n subN(lhs: T, rhs: T): T;\n mulN(lhs: T, rhs: T | bigint): T;\n sqrN(num: T): T;\n\n // Optional\n // Should be same as sgn0 function in\n // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n // legendre?(num: T): T;\n pow(lhs: T, power: bigint): T;\n invertBatch: (lst: T[]) => T[];\n toBytes(num: T): Uint8Array;\n fromBytes(bytes: Uint8Array): T;\n // If c is False, CMOV returns a, otherwise it returns b.\n cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField(field: IField) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n } as Record;\n const opts = FIELD_FIELDS.reduce((map, val: string) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(f: IField, num: T, power: bigint): T {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n) throw new Error('Expected power > 0');\n if (power === _0n) return f.ONE;\n if (power === _1n) return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f: IField, nums: T[]): T[] {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nexport function FpDiv(f: IField, lhs: T, rhs: T | bigint): T {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f: IField) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x: T): boolean => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\n // Bit size, byte size of CURVE.n\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField & Required, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n ORDER: bigint,\n bitLen?: number,\n isLE = false,\n redef: Partial> = {}\n): Readonly {\n if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f: Readonly = Object.freeze({\n ORDER,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n } as FpField);\n return Object.freeze(f);\n}\n\nexport function FpSqrtOdd(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven(Fp: IField, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n hash: string | Uint8Array,\n groupOrder: bigint,\n isLE = false\n): bigint {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { mod, pow } from './modular.js';\nimport { bytesToNumberLE, ensureBytes, numberToBytesLE, validateObject } from './utils.js';\n\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\ntype Hex = string | Uint8Array;\n\nexport type CurveType = {\n P: bigint; // finite field prime\n nByteLength: number;\n adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array;\n domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;\n a: bigint;\n montgomeryBits: number;\n powPminus2?: (x: bigint) => bigint;\n xyToU?: (x: bigint, y: bigint) => bigint;\n Gu: bigint;\n randomBytes?: (bytesLength?: number) => Uint8Array;\n};\nexport type CurveFn = {\n scalarMult: (scalar: Hex, u: Hex) => Uint8Array;\n scalarMultBase: (scalar: Hex) => Uint8Array;\n getSharedSecret: (privateKeyA: Hex, publicKeyB: Hex) => Uint8Array;\n getPublicKey: (privateKey: Hex) => Uint8Array;\n utils: { randomPrivateKey: () => Uint8Array };\n GuBytes: Uint8Array;\n};\n\nfunction validateOpts(curve: CurveType) {\n validateObject(\n curve,\n {\n a: 'bigint',\n },\n {\n montgomeryBits: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n adjustScalarBytes: 'function',\n domain: 'function',\n powPminus2: 'function',\n Gu: 'bigint',\n }\n );\n // Set defaults\n return Object.freeze({ ...curve } as const);\n}\n\n// NOTE: not really montgomery curve, just bunch of very specific methods for X25519/X448 (RFC 7748, https://www.rfc-editor.org/rfc/rfc7748)\n// Uses only one coordinate instead of two\nexport function montgomery(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef);\n const { P } = CURVE;\n const modP = (n: bigint) => mod(n, P);\n const montgomeryBits = CURVE.montgomeryBits;\n const montgomeryBytes = Math.ceil(montgomeryBits / 8);\n const fieldLen = CURVE.nByteLength;\n const adjustScalarBytes = CURVE.adjustScalarBytes || ((bytes: Uint8Array) => bytes);\n const powPminus2 = CURVE.powPminus2 || ((x: bigint) => pow(x, P - BigInt(2), P));\n\n // cswap from RFC7748. But it is not from RFC7748!\n /*\n cswap(swap, x_2, x_3):\n dummy = mask(swap) AND (x_2 XOR x_3)\n x_2 = x_2 XOR dummy\n x_3 = x_3 XOR dummy\n Return (x_2, x_3)\n Where mask(swap) is the all-1 or all-0 word of the same length as x_2\n and x_3, computed, e.g., as mask(swap) = 0 - swap.\n */\n function cswap(swap: bigint, x_2: bigint, x_3: bigint): [bigint, bigint] {\n const dummy = modP(swap * (x_2 - x_3));\n x_2 = modP(x_2 - dummy);\n x_3 = modP(x_3 + dummy);\n return [x_2, x_3];\n }\n\n // Accepts 0 as well\n function assertFieldElement(n: bigint): bigint {\n if (typeof n === 'bigint' && _0n <= n && n < P) return n;\n throw new Error('Expected valid scalar 0 < scalar < CURVE.P');\n }\n\n // x25519 from 4\n // The constant a24 is (486662 - 2) / 4 = 121665 for curve25519/X25519\n const a24 = (CURVE.a - BigInt(2)) / BigInt(4);\n /**\n *\n * @param pointU u coordinate (x) on Montgomery Curve 25519\n * @param scalar by which the point would be multiplied\n * @returns new Point on Montgomery curve\n */\n function montgomeryLadder(pointU: bigint, scalar: bigint): bigint {\n const u = assertFieldElement(pointU);\n // Section 5: Implementations MUST accept non-canonical values and process them as\n // if they had been reduced modulo the field prime.\n const k = assertFieldElement(scalar);\n const x_1 = u;\n let x_2 = _1n;\n let z_2 = _0n;\n let x_3 = u;\n let z_3 = _1n;\n let swap = _0n;\n let sw: [bigint, bigint];\n for (let t = BigInt(montgomeryBits - 1); t >= _0n; t--) {\n const k_t = (k >> t) & _1n;\n swap ^= k_t;\n sw = cswap(swap, x_2, x_3);\n x_2 = sw[0];\n x_3 = sw[1];\n sw = cswap(swap, z_2, z_3);\n z_2 = sw[0];\n z_3 = sw[1];\n swap = k_t;\n\n const A = x_2 + z_2;\n const AA = modP(A * A);\n const B = x_2 - z_2;\n const BB = modP(B * B);\n const E = AA - BB;\n const C = x_3 + z_3;\n const D = x_3 - z_3;\n const DA = modP(D * A);\n const CB = modP(C * B);\n const dacb = DA + CB;\n const da_cb = DA - CB;\n x_3 = modP(dacb * dacb);\n z_3 = modP(x_1 * modP(da_cb * da_cb));\n x_2 = modP(AA * BB);\n z_2 = modP(E * (AA + modP(a24 * E)));\n }\n // (x_2, x_3) = cswap(swap, x_2, x_3)\n sw = cswap(swap, x_2, x_3);\n x_2 = sw[0];\n x_3 = sw[1];\n // (z_2, z_3) = cswap(swap, z_2, z_3)\n sw = cswap(swap, z_2, z_3);\n z_2 = sw[0];\n z_3 = sw[1];\n // z_2^(p - 2)\n const z2 = powPminus2(z_2);\n // Return x_2 * (z_2^(p - 2))\n return modP(x_2 * z2);\n }\n\n function encodeUCoordinate(u: bigint): Uint8Array {\n return numberToBytesLE(modP(u), montgomeryBytes);\n }\n\n function decodeUCoordinate(uEnc: Hex): bigint {\n // Section 5: When receiving such an array, implementations of X25519\n // MUST mask the most significant bit in the final byte.\n // This is very ugly way, but it works because fieldLen-1 is outside of bounds for X448, so this becomes NOOP\n // fieldLen - scalaryBytes = 1 for X448 and = 0 for X25519\n const u = ensureBytes('u coordinate', uEnc, montgomeryBytes);\n // u[fieldLen-1] crashes QuickJS (TypeError: out-of-bound numeric index)\n if (fieldLen === montgomeryBytes) u[fieldLen - 1] &= 127; // 0b0111_1111\n return bytesToNumberLE(u);\n }\n function decodeScalar(n: Hex): bigint {\n const bytes = ensureBytes('scalar', n);\n if (bytes.length !== montgomeryBytes && bytes.length !== fieldLen)\n throw new Error(`Expected ${montgomeryBytes} or ${fieldLen} bytes, got ${bytes.length}`);\n return bytesToNumberLE(adjustScalarBytes(bytes));\n }\n function scalarMult(scalar: Hex, u: Hex): Uint8Array {\n const pointU = decodeUCoordinate(u);\n const _scalar = decodeScalar(scalar);\n const pu = montgomeryLadder(pointU, _scalar);\n // The result was not contributory\n // https://cr.yp.to/ecdh.html#validate\n if (pu === _0n) throw new Error('Invalid private or public key received');\n return encodeUCoordinate(pu);\n }\n // Computes public key from private. By doing scalar multiplication of base point.\n const GuBytes = encodeUCoordinate(CURVE.Gu);\n function scalarMultBase(scalar: Hex): Uint8Array {\n return scalarMult(scalar, GuBytes);\n }\n\n return {\n scalarMult,\n scalarMultBase,\n getSharedSecret: (privateKey: Hex, publicKey: Hex) => scalarMult(privateKey, publicKey),\n getPublicKey: (privateKey: Hex): Uint8Array => scalarMultBase(privateKey),\n utils: { randomPrivateKey: () => CURVE.randomBytes!(CURVE.nByteLength) },\n GuBytes: GuBytes,\n };\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a: any): a is Uint8Array => a instanceof Uint8Array;\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n if (!u8a(bytes)) throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0) throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n if (!u8a(bytes)) throw new Error('Uint8Array expected');\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n return hexToBytes(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (u8a(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n } else {\n throw new Error(`${title} must be hex string or Uint8Array`);\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a)) throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n\nexport function equalBytes(b1: Uint8Array, b2: Uint8Array) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length) return false;\n for (let i = 0; i < b1.length; i++) if (b1[i] !== b2[i]) return false;\n return true;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number) {\n return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport const bitSet = (n: bigint, pos: number, value: boolean) => {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n};\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n()) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0) return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed: Uint8Array, pred: Pred): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n stringOrUint8Array: (val: any) => typeof val === 'string' || val instanceof Uint8Array,\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap> = { [K in keyof T]?: Validator };\n// type Record = { [P in K]: T; }\n\nexport function validateObject>(\n object: T,\n validators: ValMap,\n optValidators: ValMap = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha512 } from '@noble/hashes/sha512';\nimport { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils';\nimport { ExtPointType, twistedEdwards } from './abstract/edwards.js';\nimport { montgomery } from './abstract/montgomery.js';\nimport { Field, FpSqrtEven, isNegativeLE, mod, pow2 } from './abstract/modular.js';\nimport {\n bytesToHex,\n bytesToNumberLE,\n ensureBytes,\n equalBytes,\n Hex,\n numberToBytesLE,\n} from './abstract/utils.js';\nimport { createHasher, htfBasicOpts, expand_message_xmd } from './abstract/hash-to-curve.js';\nimport { AffinePoint } from './abstract/curve.js';\n\n/**\n * ed25519 Twisted Edwards curve with following addons:\n * - X25519 ECDH\n * - Ristretto cofactor elimination\n * - Elligator hash-to-group / point indistinguishability\n */\n\nconst ED25519_P = BigInt(\n '57896044618658097711785492504343953926634992332820282019728792003956564819949'\n);\n// √(-1) aka √(a) aka 2^((p-1)/4)\nconst ED25519_SQRT_M1 = BigInt(\n '19681161376707505956807079304988542015446066515923890162744021073123829784752'\n);\n\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _5n = BigInt(5);\n// prettier-ignore\nconst _10n = BigInt(10), _20n = BigInt(20), _40n = BigInt(40), _80n = BigInt(80);\n\nfunction ed25519_pow_2_252_3(x: bigint) {\n const P = ED25519_P;\n const x2 = (x * x) % P;\n const b2 = (x2 * x) % P; // x^3, 11\n const b4 = (pow2(b2, _2n, P) * b2) % P; // x^15, 1111\n const b5 = (pow2(b4, _1n, P) * x) % P; // x^31\n const b10 = (pow2(b5, _5n, P) * b5) % P;\n const b20 = (pow2(b10, _10n, P) * b10) % P;\n const b40 = (pow2(b20, _20n, P) * b20) % P;\n const b80 = (pow2(b40, _40n, P) * b40) % P;\n const b160 = (pow2(b80, _80n, P) * b80) % P;\n const b240 = (pow2(b160, _80n, P) * b80) % P;\n const b250 = (pow2(b240, _10n, P) * b10) % P;\n const pow_p_5_8 = (pow2(b250, _2n, P) * x) % P;\n // ^ To pow to (p+3)/8, multiply it by x.\n return { pow_p_5_8, b2 };\n}\n\nfunction adjustScalarBytes(bytes: Uint8Array): Uint8Array {\n // Section 5: For X25519, in order to decode 32 random bytes as an integer scalar,\n // set the three least significant bits of the first byte\n bytes[0] &= 248; // 0b1111_1000\n // and the most significant bit of the last to zero,\n bytes[31] &= 127; // 0b0111_1111\n // set the second most significant bit of the last byte to 1\n bytes[31] |= 64; // 0b0100_0000\n return bytes;\n}\n\n// sqrt(u/v)\nfunction uvRatio(u: bigint, v: bigint): { isValid: boolean; value: bigint } {\n const P = ED25519_P;\n const v3 = mod(v * v * v, P); // v³\n const v7 = mod(v3 * v3 * v, P); // v⁷\n // (p+3)/8 and (p-5)/8\n const pow = ed25519_pow_2_252_3(u * v7).pow_p_5_8;\n let x = mod(u * v3 * pow, P); // (uv³)(uv⁷)^(p-5)/8\n const vx2 = mod(v * x * x, P); // vx²\n const root1 = x; // First root candidate\n const root2 = mod(x * ED25519_SQRT_M1, P); // Second root candidate\n const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root\n const useRoot2 = vx2 === mod(-u, P); // If vx² = -u, set x <-- x * 2^((p-1)/4)\n const noRoot = vx2 === mod(-u * ED25519_SQRT_M1, P); // There is no valid root, vx² = -u√(-1)\n if (useRoot1) x = root1;\n if (useRoot2 || noRoot) x = root2; // We return root2 anyway, for const-time\n if (isNegativeLE(x, P)) x = mod(-x, P);\n return { isValid: useRoot1 || useRoot2, value: x };\n}\n\n// Just in case\nexport const ED25519_TORSION_SUBGROUP = [\n '0100000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a',\n '0000000000000000000000000000000000000000000000000000000000000080',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05',\n 'ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85',\n '0000000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa',\n];\n\nconst Fp = Field(ED25519_P, undefined, true);\n\nconst ed25519Defaults = {\n // Param: a\n a: BigInt(-1), // Fp.create(-1) is proper; our way still works and is faster\n // d is equal to -121665/121666 over finite field.\n // Negative number is P - number, and division is invert(number, P)\n d: BigInt('37095705934669439343138083508754565189542113879843219016388785533085940283555'),\n // Finite field 𝔽p over which we'll do calculations; 2n**255n - 19n\n Fp,\n // Subgroup order: how many points curve has\n // 2n**252n + 27742317777372353535851937790883648493n;\n n: BigInt('7237005577332262213973186563042994240857116359379907606001950938285454250989'),\n // Cofactor\n h: BigInt(8),\n // Base point (x, y) aka generator point\n Gx: BigInt('15112221349535400772501151409588531511454012693041857206046113283949847762202'),\n Gy: BigInt('46316835694926478169428394003475163141307993866256225615783033603165251855960'),\n hash: sha512,\n randomBytes,\n adjustScalarBytes,\n // dom2\n // Ratio of u to v. Allows us to combine inversion and square root. Uses algo from RFC8032 5.1.3.\n // Constant-time, u/√v\n uvRatio,\n} as const;\n\nexport const ed25519 = /* @__PURE__ */ twistedEdwards(ed25519Defaults);\n\nfunction ed25519_domain(data: Uint8Array, ctx: Uint8Array, phflag: boolean) {\n if (ctx.length > 255) throw new Error('Context is too big');\n return concatBytes(\n utf8ToBytes('SigEd25519 no Ed25519 collisions'),\n new Uint8Array([phflag ? 1 : 0, ctx.length]),\n ctx,\n data\n );\n}\n\nexport const ed25519ctx = /* @__PURE__ */ twistedEdwards({\n ...ed25519Defaults,\n domain: ed25519_domain,\n});\nexport const ed25519ph = /* @__PURE__ */ twistedEdwards({\n ...ed25519Defaults,\n domain: ed25519_domain,\n prehash: sha512,\n});\n\nexport const x25519 = /* @__PURE__ */ (() =>\n montgomery({\n P: ED25519_P,\n a: BigInt(486662),\n montgomeryBits: 255, // n is 253 bits\n nByteLength: 32,\n Gu: BigInt(9),\n powPminus2: (x: bigint): bigint => {\n const P = ED25519_P;\n // x^(p-2) aka x^(2^255-21)\n const { pow_p_5_8, b2 } = ed25519_pow_2_252_3(x);\n return mod(pow2(pow_p_5_8, BigInt(3), P) * b2, P);\n },\n adjustScalarBytes,\n randomBytes,\n }))();\n\n/**\n * Converts ed25519 public key to x25519 public key. Uses formula:\n * * `(u, v) = ((1+y)/(1-y), sqrt(-486664)*u/x)`\n * * `(x, y) = (sqrt(-486664)*u/v, (u-1)/(u+1))`\n * @example\n * const someonesPub = ed25519.getPublicKey(ed25519.utils.randomPrivateKey());\n * const aPriv = x25519.utils.randomPrivateKey();\n * x25519.getSharedSecret(aPriv, edwardsToMontgomeryPub(someonesPub))\n */\nexport function edwardsToMontgomeryPub(edwardsPub: Hex): Uint8Array {\n const { y } = ed25519.ExtendedPoint.fromHex(edwardsPub);\n const _1n = BigInt(1);\n return Fp.toBytes(Fp.create((_1n + y) * Fp.inv(_1n - y)));\n}\nexport const edwardsToMontgomery = edwardsToMontgomeryPub; // deprecated\n\n/**\n * Converts ed25519 secret key to x25519 secret key.\n * @example\n * const someonesPub = x25519.getPublicKey(x25519.utils.randomPrivateKey());\n * const aPriv = ed25519.utils.randomPrivateKey();\n * x25519.getSharedSecret(edwardsToMontgomeryPriv(aPriv), someonesPub)\n */\nexport function edwardsToMontgomeryPriv(edwardsPriv: Uint8Array): Uint8Array {\n const hashed = ed25519Defaults.hash(edwardsPriv.subarray(0, 32));\n return ed25519Defaults.adjustScalarBytes(hashed).subarray(0, 32);\n}\n\n// Hash To Curve Elligator2 Map (NOTE: different from ristretto255 elligator)\n// NOTE: very important part is usage of FpSqrtEven for ELL2_C1_EDWARDS, since\n// SageMath returns different root first and everything falls apart\n\nconst ELL2_C1 = (Fp.ORDER + BigInt(3)) / BigInt(8); // 1. c1 = (q + 3) / 8 # Integer arithmetic\n\nconst ELL2_C2 = Fp.pow(_2n, ELL2_C1); // 2. c2 = 2^c1\nconst ELL2_C3 = Fp.sqrt(Fp.neg(Fp.ONE)); // 3. c3 = sqrt(-1)\nconst ELL2_C4 = (Fp.ORDER - BigInt(5)) / BigInt(8); // 4. c4 = (q - 5) / 8 # Integer arithmetic\nconst ELL2_J = BigInt(486662);\n\n// prettier-ignore\nfunction map_to_curve_elligator2_curve25519(u: bigint) {\n let tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, _2n); // 2. tv1 = 2 * tv1\n let xd = Fp.add(tv1, Fp.ONE); // 3. xd = tv1 + 1 # Nonzero: -1 is square (mod p), tv1 is not\n let x1n = Fp.neg(ELL2_J); // 4. x1n = -J # x1 = x1n / xd = -J / (1 + 2 * u^2)\n let tv2 = Fp.sqr(xd); // 5. tv2 = xd^2\n let gxd = Fp.mul(tv2, xd); // 6. gxd = tv2 * xd # gxd = xd^3\n let gx1 = Fp.mul(tv1, ELL2_J); // 7. gx1 = J * tv1 # x1n + J * xd\n gx1 = Fp.mul(gx1, x1n); // 8. gx1 = gx1 * x1n # x1n^2 + J * x1n * xd\n gx1 = Fp.add(gx1, tv2); // 9. gx1 = gx1 + tv2 # x1n^2 + J * x1n * xd + xd^2\n gx1 = Fp.mul(gx1, x1n); // 10. gx1 = gx1 * x1n # x1n^3 + J * x1n^2 * xd + x1n * xd^2\n let tv3 = Fp.sqr(gxd); // 11. tv3 = gxd^2\n tv2 = Fp.sqr(tv3); // 12. tv2 = tv3^2 # gxd^4\n tv3 = Fp.mul(tv3, gxd); // 13. tv3 = tv3 * gxd # gxd^3\n tv3 = Fp.mul(tv3, gx1); // 14. tv3 = tv3 * gx1 # gx1 * gxd^3\n tv2 = Fp.mul(tv2, tv3); // 15. tv2 = tv2 * tv3 # gx1 * gxd^7\n let y11 = Fp.pow(tv2, ELL2_C4); // 16. y11 = tv2^c4 # (gx1 * gxd^7)^((p - 5) / 8)\n y11 = Fp.mul(y11, tv3); // 17. y11 = y11 * tv3 # gx1*gxd^3*(gx1*gxd^7)^((p-5)/8)\n let y12 = Fp.mul(y11, ELL2_C3); // 18. y12 = y11 * c3\n tv2 = Fp.sqr(y11); // 19. tv2 = y11^2\n tv2 = Fp.mul(tv2, gxd); // 20. tv2 = tv2 * gxd\n let e1 = Fp.eql(tv2, gx1); // 21. e1 = tv2 == gx1\n let y1 = Fp.cmov(y12, y11, e1); // 22. y1 = CMOV(y12, y11, e1) # If g(x1) is square, this is its sqrt\n let x2n = Fp.mul(x1n, tv1); // 23. x2n = x1n * tv1 # x2 = x2n / xd = 2 * u^2 * x1n / xd\n let y21 = Fp.mul(y11, u); // 24. y21 = y11 * u\n y21 = Fp.mul(y21, ELL2_C2); // 25. y21 = y21 * c2\n let y22 = Fp.mul(y21, ELL2_C3); // 26. y22 = y21 * c3\n let gx2 = Fp.mul(gx1, tv1); // 27. gx2 = gx1 * tv1 # g(x2) = gx2 / gxd = 2 * u^2 * g(x1)\n tv2 = Fp.sqr(y21); // 28. tv2 = y21^2\n tv2 = Fp.mul(tv2, gxd); // 29. tv2 = tv2 * gxd\n let e2 = Fp.eql(tv2, gx2); // 30. e2 = tv2 == gx2\n let y2 = Fp.cmov(y22, y21, e2); // 31. y2 = CMOV(y22, y21, e2) # If g(x2) is square, this is its sqrt\n tv2 = Fp.sqr(y1); // 32. tv2 = y1^2\n tv2 = Fp.mul(tv2, gxd); // 33. tv2 = tv2 * gxd\n let e3 = Fp.eql(tv2, gx1); // 34. e3 = tv2 == gx1\n let xn = Fp.cmov(x2n, x1n, e3); // 35. xn = CMOV(x2n, x1n, e3) # If e3, x = x1, else x = x2\n let y = Fp.cmov(y2, y1, e3); // 36. y = CMOV(y2, y1, e3) # If e3, y = y1, else y = y2\n let e4 = Fp.isOdd(y); // 37. e4 = sgn0(y) == 1 # Fix sign of y\n y = Fp.cmov(y, Fp.neg(y), e3 !== e4); // 38. y = CMOV(y, -y, e3 XOR e4)\n return { xMn: xn, xMd: xd, yMn: y, yMd: _1n }; // 39. return (xn, xd, y, 1)\n}\n\nconst ELL2_C1_EDWARDS = FpSqrtEven(Fp, Fp.neg(BigInt(486664))); // sgn0(c1) MUST equal 0\nfunction map_to_curve_elligator2_edwards25519(u: bigint) {\n const { xMn, xMd, yMn, yMd } = map_to_curve_elligator2_curve25519(u); // 1. (xMn, xMd, yMn, yMd) =\n // map_to_curve_elligator2_curve25519(u)\n let xn = Fp.mul(xMn, yMd); // 2. xn = xMn * yMd\n xn = Fp.mul(xn, ELL2_C1_EDWARDS); // 3. xn = xn * c1\n let xd = Fp.mul(xMd, yMn); // 4. xd = xMd * yMn # xn / xd = c1 * xM / yM\n let yn = Fp.sub(xMn, xMd); // 5. yn = xMn - xMd\n let yd = Fp.add(xMn, xMd); // 6. yd = xMn + xMd # (n / d - 1) / (n / d + 1) = (n - d) / (n + d)\n let tv1 = Fp.mul(xd, yd); // 7. tv1 = xd * yd\n let e = Fp.eql(tv1, Fp.ZERO); // 8. e = tv1 == 0\n xn = Fp.cmov(xn, Fp.ZERO, e); // 9. xn = CMOV(xn, 0, e)\n xd = Fp.cmov(xd, Fp.ONE, e); // 10. xd = CMOV(xd, 1, e)\n yn = Fp.cmov(yn, Fp.ONE, e); // 11. yn = CMOV(yn, 1, e)\n yd = Fp.cmov(yd, Fp.ONE, e); // 12. yd = CMOV(yd, 1, e)\n\n const inv = Fp.invertBatch([xd, yd]); // batch division\n return { x: Fp.mul(xn, inv[0]), y: Fp.mul(yn, inv[1]) }; // 13. return (xn, xd, yn, yd)\n}\n\nconst htf = /* @__PURE__ */ (() =>\n createHasher(\n ed25519.ExtendedPoint,\n (scalars: bigint[]) => map_to_curve_elligator2_edwards25519(scalars[0]),\n {\n DST: 'edwards25519_XMD:SHA-512_ELL2_RO_',\n encodeDST: 'edwards25519_XMD:SHA-512_ELL2_NU_',\n p: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha512,\n }\n ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n\nfunction assertRstPoint(other: unknown) {\n if (!(other instanceof RistPoint)) throw new Error('RistrettoPoint expected');\n}\n\n// √(-1) aka √(a) aka 2^((p-1)/4)\nconst SQRT_M1 = ED25519_SQRT_M1;\n// √(ad - 1)\nconst SQRT_AD_MINUS_ONE = BigInt(\n '25063068953384623474111414158702152701244531502492656460079210482610430750235'\n);\n// 1 / √(a-d)\nconst INVSQRT_A_MINUS_D = BigInt(\n '54469307008909316920995813868745141605393597292927456921205312896311721017578'\n);\n// 1-d²\nconst ONE_MINUS_D_SQ = BigInt(\n '1159843021668779879193775521855586647937357759715417654439879720876111806838'\n);\n// (d-1)²\nconst D_MINUS_ONE_SQ = BigInt(\n '40440834346308536858101042469323190826248399146238708352240133220865137265952'\n);\n// Calculates 1/√(number)\nconst invertSqrt = (number: bigint) => uvRatio(_1n, number);\n\nconst MAX_255B = BigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nconst bytes255ToNumberLE = (bytes: Uint8Array) =>\n ed25519.CURVE.Fp.create(bytesToNumberLE(bytes) & MAX_255B);\n\ntype ExtendedPoint = ExtPointType;\n\n// Computes Elligator map for Ristretto\n// https://ristretto.group/formulas/elligator.html\nfunction calcElligatorRistrettoMap(r0: bigint): ExtendedPoint {\n const { d } = ed25519.CURVE;\n const P = ed25519.CURVE.Fp.ORDER;\n const mod = ed25519.CURVE.Fp.create;\n const r = mod(SQRT_M1 * r0 * r0); // 1\n const Ns = mod((r + _1n) * ONE_MINUS_D_SQ); // 2\n let c = BigInt(-1); // 3\n const D = mod((c - d * r) * mod(r + d)); // 4\n let { isValid: Ns_D_is_sq, value: s } = uvRatio(Ns, D); // 5\n let s_ = mod(s * r0); // 6\n if (!isNegativeLE(s_, P)) s_ = mod(-s_);\n if (!Ns_D_is_sq) s = s_; // 7\n if (!Ns_D_is_sq) c = r; // 8\n const Nt = mod(c * (r - _1n) * D_MINUS_ONE_SQ - D); // 9\n const s2 = s * s;\n const W0 = mod((s + s) * D); // 10\n const W1 = mod(Nt * SQRT_AD_MINUS_ONE); // 11\n const W2 = mod(_1n - s2); // 12\n const W3 = mod(_1n + s2); // 13\n return new ed25519.ExtendedPoint(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2));\n}\n\n/**\n * Each ed25519/ExtendedPoint has 8 different equivalent points. This can be\n * a source of bugs for protocols like ring signatures. Ristretto was created to solve this.\n * Ristretto point operates in X:Y:Z:T extended coordinates like ExtendedPoint,\n * but it should work in its own namespace: do not combine those two.\n * https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-ristretto255-decaf448\n */\nclass RistPoint {\n static BASE: RistPoint;\n static ZERO: RistPoint;\n // Private property to discourage combining ExtendedPoint + RistrettoPoint\n // Always use Ristretto encoding/decoding instead.\n constructor(private readonly ep: ExtendedPoint) {}\n\n static fromAffine(ap: AffinePoint) {\n return new RistPoint(ed25519.ExtendedPoint.fromAffine(ap));\n }\n\n /**\n * Takes uniform output of 64-byte hash function like sha512 and converts it to `RistrettoPoint`.\n * The hash-to-group operation applies Elligator twice and adds the results.\n * **Note:** this is one-way map, there is no conversion from point to hash.\n * https://ristretto.group/formulas/elligator.html\n * @param hex 64-byte output of a hash function\n */\n static hashToCurve(hex: Hex): RistPoint {\n hex = ensureBytes('ristrettoHash', hex, 64);\n const r1 = bytes255ToNumberLE(hex.slice(0, 32));\n const R1 = calcElligatorRistrettoMap(r1);\n const r2 = bytes255ToNumberLE(hex.slice(32, 64));\n const R2 = calcElligatorRistrettoMap(r2);\n return new RistPoint(R1.add(R2));\n }\n\n /**\n * Converts ristretto-encoded string to ristretto point.\n * https://ristretto.group/formulas/decoding.html\n * @param hex Ristretto-encoded 32 bytes. Not every 32-byte string is valid ristretto encoding\n */\n static fromHex(hex: Hex): RistPoint {\n hex = ensureBytes('ristrettoHex', hex, 32);\n const { a, d } = ed25519.CURVE;\n const P = ed25519.CURVE.Fp.ORDER;\n const mod = ed25519.CURVE.Fp.create;\n const emsg = 'RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint';\n const s = bytes255ToNumberLE(hex);\n // 1. Check that s_bytes is the canonical encoding of a field element, or else abort.\n // 3. Check that s is non-negative, or else abort\n if (!equalBytes(numberToBytesLE(s, 32), hex) || isNegativeLE(s, P)) throw new Error(emsg);\n const s2 = mod(s * s);\n const u1 = mod(_1n + a * s2); // 4 (a is -1)\n const u2 = mod(_1n - a * s2); // 5\n const u1_2 = mod(u1 * u1);\n const u2_2 = mod(u2 * u2);\n const v = mod(a * d * u1_2 - u2_2); // 6\n const { isValid, value: I } = invertSqrt(mod(v * u2_2)); // 7\n const Dx = mod(I * u2); // 8\n const Dy = mod(I * Dx * v); // 9\n let x = mod((s + s) * Dx); // 10\n if (isNegativeLE(x, P)) x = mod(-x); // 10\n const y = mod(u1 * Dy); // 11\n const t = mod(x * y); // 12\n if (!isValid || isNegativeLE(t, P) || y === _0n) throw new Error(emsg);\n return new RistPoint(new ed25519.ExtendedPoint(x, y, _1n, t));\n }\n\n /**\n * Encodes ristretto point to Uint8Array.\n * https://ristretto.group/formulas/encoding.html\n */\n toRawBytes(): Uint8Array {\n let { ex: x, ey: y, ez: z, et: t } = this.ep;\n const P = ed25519.CURVE.Fp.ORDER;\n const mod = ed25519.CURVE.Fp.create;\n const u1 = mod(mod(z + y) * mod(z - y)); // 1\n const u2 = mod(x * y); // 2\n // Square root always exists\n const u2sq = mod(u2 * u2);\n const { value: invsqrt } = invertSqrt(mod(u1 * u2sq)); // 3\n const D1 = mod(invsqrt * u1); // 4\n const D2 = mod(invsqrt * u2); // 5\n const zInv = mod(D1 * D2 * t); // 6\n let D: bigint; // 7\n if (isNegativeLE(t * zInv, P)) {\n let _x = mod(y * SQRT_M1);\n let _y = mod(x * SQRT_M1);\n x = _x;\n y = _y;\n D = mod(D1 * INVSQRT_A_MINUS_D);\n } else {\n D = D2; // 8\n }\n if (isNegativeLE(x * zInv, P)) y = mod(-y); // 9\n let s = mod((z - y) * D); // 10 (check footer's note, no sqrt(-a))\n if (isNegativeLE(s, P)) s = mod(-s);\n return numberToBytesLE(s, 32); // 11\n }\n\n toHex(): string {\n return bytesToHex(this.toRawBytes());\n }\n\n toString(): string {\n return this.toHex();\n }\n\n // Compare one point to another.\n equals(other: RistPoint): boolean {\n assertRstPoint(other);\n const { ex: X1, ey: Y1 } = this.ep;\n const { ex: X2, ey: Y2 } = other.ep;\n const mod = ed25519.CURVE.Fp.create;\n // (x1 * y2 == y1 * x2) | (y1 * y2 == x1 * x2)\n const one = mod(X1 * Y2) === mod(Y1 * X2);\n const two = mod(Y1 * Y2) === mod(X1 * X2);\n return one || two;\n }\n\n add(other: RistPoint): RistPoint {\n assertRstPoint(other);\n return new RistPoint(this.ep.add(other.ep));\n }\n\n subtract(other: RistPoint): RistPoint {\n assertRstPoint(other);\n return new RistPoint(this.ep.subtract(other.ep));\n }\n\n multiply(scalar: bigint): RistPoint {\n return new RistPoint(this.ep.multiply(scalar));\n }\n\n multiplyUnsafe(scalar: bigint): RistPoint {\n return new RistPoint(this.ep.multiplyUnsafe(scalar));\n }\n}\nexport const RistrettoPoint = /* @__PURE__ */ (() => {\n if (!RistPoint.BASE) RistPoint.BASE = new RistPoint(ed25519.ExtendedPoint.BASE);\n if (!RistPoint.ZERO) RistPoint.ZERO = new RistPoint(ed25519.ExtendedPoint.ZERO);\n return RistPoint;\n})();\n\n// Hashing to ristretto255. https://www.rfc-editor.org/rfc/rfc9380#appendix-B\nexport const hashToRistretto255 = (msg: Uint8Array, options: htfBasicOpts) => {\n const d = options.DST;\n const DST = typeof d === 'string' ? utf8ToBytes(d) : d;\n const uniform_bytes = expand_message_xmd(msg, DST, 64, sha512);\n const P = RistPoint.hashToCurve(uniform_bytes);\n return P;\n};\nexport const hash_to_ristretto255 = hashToRistretto255; // legacy\n","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`Wrong positive integer: ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`Expected boolean, not ${b}`);\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!(b instanceof Uint8Array)) throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(hash: Hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n// Polyfill for Safari 14\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n// Base SHA2 class (RFC 6234)\nexport abstract class SHA2> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n: bigint, le = false) {\n if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n\nfunction split(lst: bigint[], le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\n\nconst toBig = (h: number, l: number) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, _l: number, s: number) => h >>> s;\nconst shrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h: number, l: number) => l;\nconst rotr32L = (h: number, _l: number) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number) => (h << (s - 32)) | (l >>> (64 - s));\n\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah: number, Al: number, Bh: number, Bl: number) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al: number, Bl: number, Cl: number) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number) =>\n (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number) =>\n (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) =>\n (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nexport {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x6a09e667 | 0;\n Al = 0xf3bcc908 | 0;\n Bh = 0xbb67ae85 | 0;\n Bl = 0x84caa73b | 0;\n Ch = 0x3c6ef372 | 0;\n Cl = 0xfe94f82b | 0;\n Dh = 0xa54ff53a | 0;\n Dl = 0x5f1d36f1 | 0;\n Eh = 0x510e527f | 0;\n El = 0xade682d1 | 0;\n Fh = 0x9b05688c | 0;\n Fl = 0x2b3e6c1f | 0;\n Gh = 0x1f83d9ab | 0;\n Gl = 0xfb41bd6b | 0;\n Hh = 0x5be0cd19 | 0;\n Hl = 0x137e2179 | 0;\n\n constructor() {\n super(128, 64, 16, false);\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n protected set(\n Ah: number, Al: number, Bh: number, Bl: number, Ch: number, Cl: number, Dh: number, Dl: number,\n Eh: number, El: number, Fh: number, Fl: number, Gh: number, Gl: number, Hh: number, Hl: number\n ) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n protected process(view: DataView, offset: number) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n protected roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\nclass SHA512_224 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x8c3d37c8 | 0;\n Al = 0x19544da2 | 0;\n Bh = 0x73e19966 | 0;\n Bl = 0x89dcd4d6 | 0;\n Ch = 0x1dfab7ae | 0;\n Cl = 0x32ff9c82 | 0;\n Dh = 0x679dd514 | 0;\n Dl = 0x582f9fcf | 0;\n Eh = 0x0f6d2b69 | 0;\n El = 0x7bd44da8 | 0;\n Fh = 0x77e36f73 | 0;\n Fl = 0x04c48942 | 0;\n Gh = 0x3f9d85a8 | 0;\n Gl = 0x6a1d36c8 | 0;\n Hh = 0x1112e6ad | 0;\n Hl = 0x91d692a1 | 0;\n\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\nclass SHA512_256 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x22312194 | 0;\n Al = 0xfc2bf72c | 0;\n Bh = 0x9f555fa3 | 0;\n Bl = 0xc84c64c2 | 0;\n Ch = 0x2393b86b | 0;\n Cl = 0x6f53b151 | 0;\n Dh = 0x96387719 | 0;\n Dl = 0x5940eabd | 0;\n Eh = 0x96283ee2 | 0;\n El = 0xa88effe3 | 0;\n Fh = 0xbe5e1e25 | 0;\n Fl = 0x53863992 | 0;\n Gh = 0x2b0199fc | 0;\n Gl = 0x2c85b8aa | 0;\n Hh = 0x0eb72ddc | 0;\n Hl = 0x81c52ca2 | 0;\n\n constructor() {\n super();\n this.outputLen = 32;\n }\n}\n\nclass SHA384 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0xcbbb9d5d | 0;\n Al = 0xc1059ed8 | 0;\n Bh = 0x629a292a | 0;\n Bl = 0x367cd507 | 0;\n Ch = 0x9159015a | 0;\n Cl = 0x3070dd17 | 0;\n Dh = 0x152fecd8 | 0;\n Dl = 0xf70e5939 | 0;\n Eh = 0x67332667 | 0;\n El = 0xffc00b31 | 0;\n Fh = 0x8eb44a87 | 0;\n Fl = 0x68581511 | 0;\n Gh = 0xdb0c2e0d | 0;\n Gl = 0x64f98fa7 | 0;\n Hh = 0x47b5481d | 0;\n Hl = 0xbefa4fa4 | 0;\n\n constructor() {\n super();\n this.outputLen = 48;\n }\n}\n\nexport const sha512 = /* @__PURE__ */ wrapConstructor(() => new SHA512());\nexport const sha512_224 = /* @__PURE__ */ wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = /* @__PURE__ */ wrapConstructor(() => new SHA512_256());\nexport const sha384 = /* @__PURE__ */ wrapConstructor(() => new SHA384());\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\nconst u8a = (a: any): a is Uint8Array => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE) throw new Error('Non little-endian hardware is not supported');\n\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n if (!u8a(bytes)) throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0) throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n if (!u8a(data)) throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a)) throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`Wrong positive integer: ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`Expected boolean, not ${b}`);\n}\n\n// copied from utils\nfunction isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(hash: Hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n// Polyfill for Safari 14\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n// Base SHA2 class (RFC 6234)\nexport abstract class SHA2> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n}\n","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Choice: a ? b : c\nconst Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */new Uint32Array([\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\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = IV[0] | 0;\n B = IV[1] | 0;\n C = IV[2] | 0;\n D = IV[3] | 0;\n E = IV[4] | 0;\n F = IV[5] | 0;\n G = IV[6] | 0;\n H = IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\nfunction isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\n// Other libraries would silently corrupt the data instead of throwing an error,\n// when they don't support it.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE) throw new Error('Non little-endian hardware is not supported');\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n if (!isBytes(bytes)) throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n if (!isBytes(data)) throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n if (!isBytes(a)) throw new Error('Uint8Array expected');\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType;\n\nexport function wrapConstructor>(hashCons: () => Hash) {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function wrapConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => Hash\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n","import type {Format, FormatDefinition} from \"ajv\"\nimport type {FormatValidator, FormatCompare} from \"ajv/dist/types\"\n\nexport type FormatMode = \"fast\" | \"full\"\n\nexport type FormatName =\n | \"date\"\n | \"time\"\n | \"date-time\"\n | \"duration\"\n | \"uri\"\n | \"uri-reference\"\n | \"uri-template\"\n | \"url\"\n | \"email\"\n | \"hostname\"\n | \"ipv4\"\n | \"ipv6\"\n | \"regex\"\n | \"uuid\"\n | \"json-pointer\"\n | \"json-pointer-uri-fragment\"\n | \"relative-json-pointer\"\n | \"byte\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"double\"\n | \"password\"\n | \"binary\"\n\nexport type DefinedFormats = {\n [key in FormatName]: Format\n}\n\nfunction fmtDef(\n validate: RegExp | FormatValidator,\n compare: FormatCompare\n): FormatDefinition {\n return {validate, compare}\n}\n\nexport const fullFormats: DefinedFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(time, compareTime),\n \"date-time\": fmtDef(date_time, compareDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\":\n /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\":\n /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email:\n /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname:\n /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: {type: \"number\", validate: validateInt32},\n // signed 64 bit integer\n int64: {type: \"number\", validate: validateInt64},\n // C-type float\n float: {type: \"number\", validate: validateNumber},\n // C-type double\n double: {type: \"number\", validate: validateNumber},\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n}\n\nexport const fastFormats: DefinedFormats = {\n ...fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(\n /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n compareTime\n ),\n \"date-time\": fmtDef(\n /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n compareDateTime\n ),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email:\n /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n}\n\nexport const formatNames = Object.keys(fullFormats) as FormatName[]\n\nfunction isLeapYear(year: number): boolean {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)\n}\n\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n\nfunction date(str: string): boolean {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches: string[] | null = DATE.exec(str)\n if (!matches) return false\n const year: number = +matches[1]\n const month: number = +matches[2]\n const day: number = +matches[3]\n return (\n month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month])\n )\n}\n\nfunction compareDate(d1: string, d2: string): number | undefined {\n if (!(d1 && d2)) return undefined\n if (d1 > d2) return 1\n if (d1 < d2) return -1\n return 0\n}\n\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i\n\nfunction time(str: string, withTimeZone?: boolean): boolean {\n const matches: string[] | null = TIME.exec(str)\n if (!matches) return false\n\n const hour: number = +matches[1]\n const minute: number = +matches[2]\n const second: number = +matches[3]\n const timeZone: string = matches[5]\n return (\n ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\")\n )\n}\n\nfunction compareTime(t1: string, t2: string): number | undefined {\n if (!(t1 && t2)) return undefined\n const a1 = TIME.exec(t1)\n const a2 = TIME.exec(t2)\n if (!(a1 && a2)) return undefined\n t1 = a1[1] + a1[2] + a1[3] + (a1[4] || \"\")\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\")\n if (t1 > t2) return 1\n if (t1 < t2) return -1\n return 0\n}\n\nconst DATE_TIME_SEPARATOR = /t|\\s/i\nfunction date_time(str: string): boolean {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime: string[] = str.split(DATE_TIME_SEPARATOR)\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true)\n}\n\nfunction compareDateTime(dt1: string, dt2: string): number | undefined {\n if (!(dt1 && dt2)) return undefined\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR)\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR)\n const res = compareDate(d1, d2)\n if (res === undefined) return undefined\n return res || compareTime(t1, t2)\n}\n\nconst NOT_URI_FRAGMENT = /\\/|:/\nconst URI =\n /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i\n\nfunction uri(str: string): boolean {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str)\n}\n\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm\n\nfunction byte(str: string): boolean {\n BYTE.lastIndex = 0\n return BYTE.test(str)\n}\n\nconst MIN_INT32 = -(2 ** 31)\nconst MAX_INT32 = 2 ** 31 - 1\n\nfunction validateInt32(value: number): boolean {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32\n}\n\nfunction validateInt64(value: number): boolean {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value)\n}\n\nfunction validateNumber(): boolean {\n return true\n}\n\nconst Z_ANCHOR = /[^\\\\]\\\\Z/\nfunction regex(str: string): boolean {\n if (Z_ANCHOR.test(str)) return false\n try {\n new RegExp(str)\n return true\n } catch (e) {\n return false\n }\n}\n","import {\n DefinedFormats,\n FormatMode,\n FormatName,\n formatNames,\n fastFormats,\n fullFormats,\n} from \"./formats\"\nimport formatLimit from \"./limit\"\nimport type Ajv from \"ajv\"\nimport type {Plugin, Format} from \"ajv\"\nimport {_, Name} from \"ajv/dist/compile/codegen\"\n\nexport {FormatMode, FormatName} from \"./formats\"\nexport {LimitFormatError} from \"./limit\"\nexport interface FormatOptions {\n mode?: FormatMode\n formats?: FormatName[]\n keywords?: boolean\n}\n\nexport type FormatsPluginOptions = FormatName[] | FormatOptions\n\nexport interface FormatsPlugin extends Plugin {\n get: (format: FormatName, mode?: FormatMode) => Format\n}\n\nconst fullName = new Name(\"fullFormats\")\nconst fastName = new Name(\"fastFormats\")\n\nconst formatsPlugin: FormatsPlugin = (\n ajv: Ajv,\n opts: FormatsPluginOptions = {keywords: true}\n): Ajv => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, fullFormats, fullName)\n return ajv\n }\n const [formats, exportName] =\n opts.mode === \"fast\" ? [fastFormats, fastName] : [fullFormats, fullName]\n const list = opts.formats || formatNames\n addFormats(ajv, list, formats, exportName)\n if (opts.keywords) formatLimit(ajv)\n return ajv\n}\n\nformatsPlugin.get = (name: FormatName, mode: FormatMode = \"full\"): Format => {\n const formats = mode === \"fast\" ? fastFormats : fullFormats\n const f = formats[name]\n if (!f) throw new Error(`Unknown format \"${name}\"`)\n return f\n}\n\nfunction addFormats(ajv: Ajv, list: FormatName[], fs: DefinedFormats, exportName: Name): void {\n ajv.opts.code.formats ??= _`require(\"ajv-formats/dist/formats\").${exportName}`\n for (const f of list) ajv.addFormat(f, fs[f])\n}\n\nmodule.exports = exports = formatsPlugin\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default formatsPlugin\n","import type Ajv from \"ajv\"\nimport type {\n Plugin,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n Code,\n Name,\n ErrorObject,\n} from \"ajv\"\nimport type {AddedFormat} from \"ajv/dist/types\"\nimport type {Rule} from \"ajv/dist/compile/rules\"\nimport {KeywordCxt} from \"ajv\"\nimport {_, str, or, getProperty, operators} from \"ajv/dist/compile/codegen\"\n\ntype Kwd = \"formatMaximum\" | \"formatMinimum\" | \"formatExclusiveMaximum\" | \"formatExclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst ops = operators\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n formatMaximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n formatMinimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n formatExclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n formatExclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitFormatError = ErrorObject\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`should be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nexport const formatLimitDefinition: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const {gen, data, schemaCode, keyword, it} = cxt\n const {opts, self} = it\n if (!opts.validateFormats) return\n\n const fCxt = new KeywordCxt(it, (self.RULES.all.format as Rule).definition, \"format\")\n if (fCxt.$data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fmt = gen.const(\"fmt\", _`${fmts}[${fCxt.schemaCode}]`)\n cxt.fail$data(\n or(\n _`typeof ${fmt} != \"object\"`,\n _`${fmt} instanceof RegExp`,\n _`typeof ${fmt}.compare != \"function\"`,\n compareCode(fmt)\n )\n )\n }\n\n function validateFormat(): void {\n const format = fCxt.schema as string\n const fmtDef: AddedFormat | undefined = self.formats[format]\n if (!fmtDef || fmtDef === true) return\n if (\n typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\"\n ) {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`)\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? _`${opts.code.formats}${getProperty(format)}` : undefined,\n })\n\n cxt.fail$data(compareCode(fmt))\n }\n\n function compareCode(fmt: Name): Code {\n return _`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword as Kwd].fail} 0`\n }\n },\n dependencies: [\"format\"],\n}\n\nconst formatLimitPlugin: Plugin = (ajv: Ajv): Ajv => {\n ajv.addKeyword(formatLimitDefinition)\n return ajv\n}\n\nexport default formatLimitPlugin\n","import type {AnySchemaObject} from \"./types\"\nimport AjvCore from \"./core\"\nimport draft7Vocabularies from \"./vocabularies/draft7\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport * as draft7MetaSchema from \"./refs/json-schema-draft-07.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\"\n\nexport class Ajv extends AjvCore {\n _addVocabularies(): void {\n super._addVocabularies()\n draft7Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n if (!this.opts.meta) return\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv\nmodule.exports.Ajv = Ajv\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n SchemaValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n","// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n","import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n","import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record\n\ntype ScopeValues = {\n [Prefix in string]?: Map\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n","import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n","import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n","import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n","import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n","import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n","import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n","import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs): MergeEvaluatedFunc {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc\n items: MergeEvaluatedFunc\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n","import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n","import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n","import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n","import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n","import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n","import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n","import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n","export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set = new Set()\n private readonly _loading: {[Ref in string]?: Promise} = {}\n private readonly _cache: Map = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise\n validate(schema: Schema | JSONSchemaType | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate(schema: JTDSchemaType, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate(\n schema: T,\n data: unknown\n ): data is JTDDataType\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate(schema: AsyncSchema, data: unknown | T): Promise\n validate(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise\n validate(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile(schema: Schema | JSONSchemaType, _meta?: boolean): ValidateFunction\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile(schema: JTDSchemaType, _meta?: boolean): ValidateFunction\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile(\n schema: T,\n _meta?: boolean\n ): ValidateFunction>\n compile(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction\n compile(schema: AnySchema, _meta?: boolean): AnyValidateFunction\n compile(schema: AnySchema, _meta?: boolean): AnyValidateFunction {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync(\n schema: SchemaObject | JSONSchemaType,\n _meta?: boolean\n ): Promise>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync(schema: JTDSchemaType, _meta?: boolean): Promise>\n compileAsync(schema: AsyncSchema, meta?: boolean): Promise>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise>\n compileAsync(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef: string): AnyValidateFunction | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n","// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n","// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n","import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n","import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n","import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n","import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n","import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n","import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n","import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n","import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n","import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj | DiscrErrorObj\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n","import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n","import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft7Vocabularies: Vocabulary[] = [\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n]\n\nexport default draft7Vocabularies\n","import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator\n | FormatValidator\n | AsyncFormatValidator\n | AsyncFormatValidator\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n","import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n","import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n","import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {data, $data, schema, schemaCode, it} = cxt\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n const regExp = $data ? _`(new RegExp(${schemaCode}, ${u}))` : usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n","import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.AOS=t()}(this,function(){\"use strict\";var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},t=\"Expected a function\",n=NaN,o=\"[object Symbol]\",i=/^\\s+|\\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt,u=\"object\"==typeof e&&e&&e.Object===Object&&e,d=\"object\"==typeof self&&self&&self.Object===Object&&self,l=u||d||Function(\"return this\")(),f=Object.prototype.toString,m=Math.max,p=Math.min,b=function(){return l.Date.now()};function v(e,n,o){var i,a,r,c,s,u,d=0,l=!1,f=!1,v=!0;if(\"function\"!=typeof e)throw new TypeError(t);function y(t){var n=i,o=a;return i=a=void 0,d=t,c=e.apply(o,n)}function h(e){var t=e-u;return void 0===u||t>=n||t<0||f&&e-d>=r}function k(){var e=b();if(h(e))return x(e);s=setTimeout(k,function(e){var t=n-(e-u);return f?p(t,r-(e-d)):t}(e))}function x(e){return s=void 0,v&&i?y(e):(i=a=void 0,c)}function O(){var e=b(),t=h(e);if(i=arguments,a=this,u=e,t){if(void 0===s)return function(e){return d=e,s=setTimeout(k,n),l?y(e):c}(u);if(f)return s=setTimeout(k,n),y(u)}return void 0===s&&(s=setTimeout(k,n)),c}return n=w(n)||0,g(o)&&(l=!!o.leading,r=(f=\"maxWait\"in o)?m(w(o.maxWait)||0,n):r,v=\"trailing\"in o?!!o.trailing:v),O.cancel=function(){void 0!==s&&clearTimeout(s),d=0,i=u=a=s=void 0},O.flush=function(){return void 0===s?c:x(b())},O}function g(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function w(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&f.call(e)==o}(e))return n;if(g(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(i,\"\");var u=r.test(e);return u||c.test(e)?s(e.slice(2),u?2:8):a.test(e)?n:+e}var y=function(e,n,o){var i=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(t);return g(o)&&(i=\"leading\"in o?!!o.leading:i,a=\"trailing\"in o?!!o.trailing:a),v(e,n,{leading:i,maxWait:n,trailing:a})},h=\"Expected a function\",k=NaN,x=\"[object Symbol]\",O=/^\\s+|\\s+$/g,j=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,N=/^0o[0-7]+$/i,z=parseInt,C=\"object\"==typeof e&&e&&e.Object===Object&&e,A=\"object\"==typeof self&&self&&self.Object===Object&&self,q=C||A||Function(\"return this\")(),L=Object.prototype.toString,T=Math.max,M=Math.min,S=function(){return q.Date.now()};function D(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function H(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&L.call(e)==x}(e))return k;if(D(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=D(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(O,\"\");var n=E.test(e);return n||N.test(e)?z(e.slice(2),n?2:8):j.test(e)?k:+e}var $=function(e,t,n){var o,i,a,r,c,s,u=0,d=!1,l=!1,f=!0;if(\"function\"!=typeof e)throw new TypeError(h);function m(t){var n=o,a=i;return o=i=void 0,u=t,r=e.apply(a,n)}function p(e){var n=e-s;return void 0===s||n>=t||n<0||l&&e-u>=a}function b(){var e=S();if(p(e))return v(e);c=setTimeout(b,function(e){var n=t-(e-s);return l?M(n,a-(e-u)):n}(e))}function v(e){return c=void 0,f&&o?m(e):(o=i=void 0,r)}function g(){var e=S(),n=p(e);if(o=arguments,i=this,s=e,n){if(void 0===c)return function(e){return u=e,c=setTimeout(b,t),d?m(e):r}(s);if(l)return c=setTimeout(b,t),m(s)}return void 0===c&&(c=setTimeout(b,t)),r}return t=H(t)||0,D(n)&&(d=!!n.leading,a=(l=\"maxWait\"in n)?T(H(n.maxWait)||0,t):a,f=\"trailing\"in n?!!n.trailing:f),g.cancel=function(){void 0!==c&&clearTimeout(c),u=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?r:v(S())},g},W=function(){};function P(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes);if(function e(t){var n=void 0,o=void 0;for(n=0;n=o.out&&!n.once?a():t>=o.in?e.animated||(function(e,t){t&&t.forEach(function(t){return e.classList.add(t)})}(i,n.animatedClassNames),V(\"aos:in\",i),e.options.id&&V(\"aos:in:\"+e.options.id,i),e.animated=!0):e.animated&&!n.once&&a()}(e,window.pageYOffset)})},Z=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}},ee=function(e,t,n){var o=e.getAttribute(\"data-aos-\"+t);if(void 0!==o){if(\"true\"===o)return!0;if(\"false\"===o)return!1}return o||n},te=function(e,t){return e.forEach(function(e,n){var o=ee(e.node,\"mirror\",t.mirror),i=ee(e.node,\"once\",t.once),a=ee(e.node,\"id\"),r=t.useClassNames&&e.node.getAttribute(\"data-aos\"),c=[t.animatedClassName].concat(r?r.split(\" \"):[]).filter(function(e){return\"string\"==typeof e});t.initClassName&&e.node.classList.add(t.initClassName),e.position={in:function(e,t,n){var o=window.innerHeight,i=ee(e,\"anchor\"),a=ee(e,\"anchor-placement\"),r=Number(ee(e,\"offset\",a?0:t)),c=a||n,s=e;i&&document.querySelectorAll(i)&&(s=document.querySelectorAll(i)[0]);var u=Z(s).top-o;switch(c){case\"top-bottom\":break;case\"center-bottom\":u+=s.offsetHeight/2;break;case\"bottom-bottom\":u+=s.offsetHeight;break;case\"top-center\":u+=o/2;break;case\"center-center\":u+=o/2+s.offsetHeight/2;break;case\"bottom-center\":u+=o/2+s.offsetHeight;break;case\"top-top\":u+=o;break;case\"bottom-top\":u+=o+s.offsetHeight;break;case\"center-top\":u+=o+s.offsetHeight/2}return u+r}(e.node,t.offset,t.anchorPlacement),out:o&&function(e,t){window.innerHeight;var n=ee(e,\"anchor\"),o=ee(e,\"offset\",t),i=e;return n&&document.querySelectorAll(n)&&(i=document.querySelectorAll(n)[0]),Z(i).top+i.offsetHeight-o}(e.node,t.offset)},e.options={once:i,mirror:o,animatedClassNames:c,id:a}}),e},ne=function(){var e=document.querySelectorAll(\"[data-aos]\");return Array.prototype.map.call(e,function(e){return{node:e}})},oe=[],ie=!1,ae={offset:120,delay:0,easing:\"ease\",duration:400,disable:!1,once:!1,mirror:!1,anchorPlacement:\"top-bottom\",startEvent:\"DOMContentLoaded\",animatedClassName:\"aos-animate\",initClassName:\"aos-init\",useClassNames:!1,disableMutationObserver:!1,throttleDelay:99,debounceDelay:50},re=function(){return document.all&&!window.atob},ce=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&(ie=!0),ie&&(oe=te(oe,ae),X(oe),window.addEventListener(\"scroll\",y(function(){X(oe,ae.once)},ae.throttleDelay)))},se=function(){if(oe=ne(),de(ae.disable)||re())return ue();ce()},ue=function(){oe.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\"),ae.initClassName&&e.node.classList.remove(ae.initClassName),ae.animatedClassName&&e.node.classList.remove(ae.animatedClassName)})},de=function(e){return!0===e||\"mobile\"===e&&U.mobile()||\"phone\"===e&&U.phone()||\"tablet\"===e&&U.tablet()||\"function\"==typeof e&&!0===e()};return{init:function(e){return ae=I(ae,e),oe=ne(),ae.disableMutationObserver||_.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),ae.disableMutationObserver=!0),ae.disableMutationObserver||_.ready(\"[data-aos]\",se),de(ae.disable)||re()?ue():(document.querySelector(\"body\").setAttribute(\"data-aos-easing\",ae.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",ae.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",ae.delay),-1===[\"DOMContentLoaded\",\"load\"].indexOf(ae.startEvent)?document.addEventListener(ae.startEvent,function(){ce(!0)}):window.addEventListener(\"load\",function(){ce(!0)}),\"DOMContentLoaded\"===ae.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1&&ce(!0),window.addEventListener(\"resize\",$(ce,ae.debounceDelay,!0)),window.addEventListener(\"orientationchange\",$(ce,ae.debounceDelay,!0)),oe)},refresh:ce,refreshHard:se}});\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 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 r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\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 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 BN.prototype.inspect = 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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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.modn(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);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\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] & (1 << wbit)) >>> wbit;\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 var fftm = new FFTM();\n return fftm.mulp(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 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 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.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(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.modn = function modn (num) {\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 acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\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 return this.strip();\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 BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\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","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n if (!config.url) {\n throw new Error('Provided config url is not valid');\n }\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n \"version\": \"0.25.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","// base-x encoding\n// Forked from https://github.com/cryptocoinjs/bs58\n// Originally written by Mike Hearn for BitcoinJ\n// Copyright (c) 2011 Google Inc\n// Ported to JavaScript by Stefan Thomas\n// Merged Buffer refactorings from base58-native by Stephen Pair\n// Copyright (c) 2013 BitPay Inc\n\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function base (ALPHABET) {\n var ALPHABET_MAP = {}\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n\n // pre-compute lookup table\n for (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n }\n\n function encode (source) {\n if (source.length === 0) return ''\n\n var digits = [0]\n for (var i = 0; i < source.length; ++i) {\n for (var j = 0, carry = source[i]; j < digits.length; ++j) {\n carry += digits[j] << 8\n digits[j] = carry % BASE\n carry = (carry / BASE) | 0\n }\n\n while (carry > 0) {\n digits.push(carry % BASE)\n carry = (carry / BASE) | 0\n }\n }\n\n var string = ''\n\n // deal with leading zeros\n for (var k = 0; source[k] === 0 && k < source.length - 1; ++k) string += ALPHABET[0]\n // convert digits to a string\n for (var q = digits.length - 1; q >= 0; --q) string += ALPHABET[digits[q]]\n\n return string\n }\n\n function decodeUnsafe (string) {\n if (string.length === 0) return Buffer.allocUnsafe(0)\n\n var bytes = [0]\n for (var i = 0; i < string.length; i++) {\n var value = ALPHABET_MAP[string[i]]\n if (value === undefined) return\n\n for (var j = 0, carry = value; j < bytes.length; ++j) {\n carry += bytes[j] * BASE\n bytes[j] = carry & 0xff\n carry >>= 8\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff)\n carry >>= 8\n }\n }\n\n // deal with leading zeros\n for (var k = 0; string[k] === LEADER && k < string.length - 1; ++k) {\n bytes.push(0)\n }\n\n return Buffer.from(bytes.reverse())\n }\n\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) return buffer\n\n throw new Error('Non-base' + BASE + ' character')\n }\n\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\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","\"use strict\";\nexports.__esModule = true;\nexports.DecodeBuffer = exports.EncodeBuffer = void 0;\nvar EncodeBuffer = /** @class */ (function () {\n function EncodeBuffer() {\n this.offset = 0;\n this.buffer_size = 256;\n this.buffer = new ArrayBuffer(this.buffer_size);\n this.view = new DataView(this.buffer);\n }\n EncodeBuffer.prototype.resize_if_necessary = function (needed_space) {\n if (this.buffer_size - this.offset < needed_space) {\n this.buffer_size = Math.max(this.buffer_size * 2, this.buffer_size + needed_space);\n var new_buffer = new ArrayBuffer(this.buffer_size);\n new Uint8Array(new_buffer).set(new Uint8Array(this.buffer));\n this.buffer = new_buffer;\n this.view = new DataView(new_buffer);\n }\n };\n EncodeBuffer.prototype.get_used_buffer = function () {\n return new Uint8Array(this.buffer).slice(0, this.offset);\n };\n EncodeBuffer.prototype.store_value = function (value, type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.resize_if_necessary(size);\n var toCall = type[0] === 'f' ? \"setFloat\".concat(bSize) : type[0] === 'i' ? \"setInt\".concat(bSize) : \"setUint\".concat(bSize);\n this.view[toCall](this.offset, value, true);\n this.offset += size;\n };\n EncodeBuffer.prototype.store_bytes = function (from) {\n this.resize_if_necessary(from.length);\n new Uint8Array(this.buffer).set(new Uint8Array(from), this.offset);\n this.offset += from.length;\n };\n return EncodeBuffer;\n}());\nexports.EncodeBuffer = EncodeBuffer;\nvar DecodeBuffer = /** @class */ (function () {\n function DecodeBuffer(buf) {\n this.offset = 0;\n this.buffer_size = buf.length;\n this.buffer = new ArrayBuffer(buf.length);\n new Uint8Array(this.buffer).set(buf);\n this.view = new DataView(this.buffer);\n }\n DecodeBuffer.prototype.assert_enough_buffer = function (size) {\n if (this.offset + size > this.buffer.byteLength) {\n throw new Error('Error in schema, the buffer is smaller than expected');\n }\n };\n DecodeBuffer.prototype.consume_value = function (type) {\n var bSize = type.substring(1);\n var size = parseInt(bSize) / 8;\n this.assert_enough_buffer(size);\n var toCall = type[0] === 'f' ? \"getFloat\".concat(bSize) : type[0] === 'i' ? \"getInt\".concat(bSize) : \"getUint\".concat(bSize);\n var ret = this.view[toCall](this.offset, true);\n this.offset += size;\n return ret;\n };\n DecodeBuffer.prototype.consume_bytes = function (size) {\n this.assert_enough_buffer(size);\n var ret = this.buffer.slice(this.offset, this.offset + size);\n this.offset += size;\n return ret;\n };\n return DecodeBuffer;\n}());\nexports.DecodeBuffer = DecodeBuffer;\n","\"use strict\";\nexports.__esModule = true;\nexports.BorshDeserializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar BorshDeserializer = /** @class */ (function () {\n function BorshDeserializer(bufferArray) {\n this.buffer = new buffer_js_1.DecodeBuffer(bufferArray);\n }\n BorshDeserializer.prototype.decode = function (schema) {\n return this.decode_value(schema);\n };\n BorshDeserializer.prototype.decode_value = function (schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.decode_integer(schema);\n if (schema === 'string')\n return this.decode_string();\n if (schema === 'bool')\n return this.decode_boolean();\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.decode_option(schema);\n if ('enum' in schema)\n return this.decode_enum(schema);\n if ('array' in schema)\n return this.decode_array(schema);\n if ('set' in schema)\n return this.decode_set(schema);\n if ('map' in schema)\n return this.decode_map(schema);\n if ('struct' in schema)\n return this.decode_struct(schema);\n }\n throw new Error(\"Unsupported type: \".concat(schema));\n };\n BorshDeserializer.prototype.decode_integer = function (schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n return this.buffer.consume_value(schema);\n }\n return this.decode_bigint(size, schema.startsWith('i'));\n };\n BorshDeserializer.prototype.decode_bigint = function (size, signed) {\n if (signed === void 0) { signed = false; }\n var buffer_len = size / 8;\n var buffer = new Uint8Array(this.buffer.consume_bytes(buffer_len));\n var bits = buffer.reduceRight(function (r, x) { return r + x.toString(16).padStart(2, '0'); }, '');\n if (signed && buffer[buffer_len - 1]) {\n return BigInt.asIntN(size, BigInt(\"0x\".concat(bits)));\n }\n return BigInt(\"0x\".concat(bits));\n };\n BorshDeserializer.prototype.decode_string = function () {\n var len = this.decode_integer('u32');\n var buffer = new Uint8Array(this.buffer.consume_bytes(len));\n return String.fromCharCode.apply(null, buffer);\n };\n BorshDeserializer.prototype.decode_boolean = function () {\n return this.buffer.consume_value('u8') > 0;\n };\n BorshDeserializer.prototype.decode_option = function (schema) {\n var option = this.buffer.consume_value('u8');\n if (option === 1) {\n return this.decode_value(schema.option);\n }\n if (option !== 0) {\n throw new Error(\"Invalid option \".concat(option));\n }\n return null;\n };\n BorshDeserializer.prototype.decode_enum = function (schema) {\n var _a;\n var valueIndex = this.buffer.consume_value('u8');\n if (valueIndex > schema[\"enum\"].length) {\n throw new Error(\"Enum option \".concat(valueIndex, \" is not available\"));\n }\n var struct = schema[\"enum\"][valueIndex].struct;\n var key = Object.keys(struct)[0];\n return _a = {}, _a[key] = this.decode_value(struct[key]), _a;\n };\n BorshDeserializer.prototype.decode_array = function (schema) {\n var result = [];\n var len = schema.array.len ? schema.array.len : this.decode_integer('u32');\n for (var i = 0; i < len; ++i) {\n result.push(this.decode_value(schema.array.type));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_set = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Set();\n for (var i = 0; i < len; ++i) {\n result.add(this.decode_value(schema.set));\n }\n return result;\n };\n BorshDeserializer.prototype.decode_map = function (schema) {\n var len = this.decode_integer('u32');\n var result = new Map();\n for (var i = 0; i < len; ++i) {\n var key = this.decode_value(schema.map.key);\n var value = this.decode_value(schema.map.value);\n result.set(key, value);\n }\n return result;\n };\n BorshDeserializer.prototype.decode_struct = function (schema) {\n var result = {};\n for (var key in schema.struct) {\n result[key] = this.decode_value(schema.struct[key]);\n }\n return result;\n };\n return BorshDeserializer;\n}());\nexports.BorshDeserializer = BorshDeserializer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.deserialize = exports.serialize = void 0;\nvar serialize_js_1 = require(\"./serialize.js\");\nvar deserialize_js_1 = require(\"./deserialize.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nfunction serialize(schema, value, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var serializer = new serialize_js_1.BorshSerializer(validate);\n return serializer.encode(value, schema);\n}\nexports.serialize = serialize;\nfunction deserialize(schema, buffer, validate) {\n if (validate === void 0) { validate = true; }\n if (validate)\n utils.validate_schema(schema);\n var deserializer = new deserialize_js_1.BorshDeserializer(buffer);\n return deserializer.decode(schema);\n}\nexports.deserialize = deserialize;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nexports.__esModule = true;\nexports.BorshSerializer = void 0;\nvar types_js_1 = require(\"./types.js\");\nvar buffer_js_1 = require(\"./buffer.js\");\nvar utils = __importStar(require(\"./utils.js\"));\nvar BorshSerializer = /** @class */ (function () {\n function BorshSerializer(checkTypes) {\n this.encoded = new buffer_js_1.EncodeBuffer();\n this.fieldPath = ['value'];\n this.checkTypes = checkTypes;\n }\n BorshSerializer.prototype.encode = function (value, schema) {\n this.encode_value(value, schema);\n return this.encoded.get_used_buffer();\n };\n BorshSerializer.prototype.encode_value = function (value, schema) {\n if (typeof schema === 'string') {\n if (types_js_1.integers.includes(schema))\n return this.encode_integer(value, schema);\n if (schema === 'string')\n return this.encode_string(value);\n if (schema === 'bool')\n return this.encode_boolean(value);\n }\n if (typeof schema === 'object') {\n if ('option' in schema)\n return this.encode_option(value, schema);\n if ('enum' in schema)\n return this.encode_enum(value, schema);\n if ('array' in schema)\n return this.encode_array(value, schema);\n if ('set' in schema)\n return this.encode_set(value, schema);\n if ('map' in schema)\n return this.encode_map(value, schema);\n if ('struct' in schema)\n return this.encode_struct(value, schema);\n }\n };\n BorshSerializer.prototype.encode_integer = function (value, schema) {\n var size = parseInt(schema.substring(1));\n if (size <= 32 || schema == 'f64') {\n this.checkTypes && utils.expect_type(value, 'number', this.fieldPath);\n this.encoded.store_value(value, schema);\n }\n else {\n this.checkTypes && utils.expect_bigint(value, this.fieldPath);\n this.encode_bigint(BigInt(value), size);\n }\n };\n BorshSerializer.prototype.encode_bigint = function (value, size) {\n var buffer_len = size / 8;\n var buffer = new Uint8Array(buffer_len);\n for (var i = 0; i < buffer_len; i++) {\n buffer[i] = Number(value & BigInt(0xff));\n value = value >> BigInt(8);\n }\n this.encoded.store_bytes(new Uint8Array(buffer));\n };\n BorshSerializer.prototype.encode_string = function (value) {\n this.checkTypes && utils.expect_type(value, 'string', this.fieldPath);\n var _value = value;\n // 4 bytes for length\n this.encoded.store_value(_value.length, 'u32');\n // string bytes\n for (var i = 0; i < _value.length; i++) {\n this.encoded.store_value(_value.charCodeAt(i), 'u8');\n }\n };\n BorshSerializer.prototype.encode_boolean = function (value) {\n this.checkTypes && utils.expect_type(value, 'boolean', this.fieldPath);\n this.encoded.store_value(value ? 1 : 0, 'u8');\n };\n BorshSerializer.prototype.encode_option = function (value, schema) {\n if (value === null || value === undefined) {\n this.encoded.store_value(0, 'u8');\n }\n else {\n this.encoded.store_value(1, 'u8');\n this.encode_value(value, schema.option);\n }\n };\n BorshSerializer.prototype.encode_enum = function (value, schema) {\n this.checkTypes && utils.expect_enum(value, this.fieldPath);\n var valueKey = Object.keys(value)[0];\n for (var i = 0; i < schema[\"enum\"].length; i++) {\n var valueSchema = schema[\"enum\"][i];\n if (valueKey === Object.keys(valueSchema.struct)[0]) {\n this.encoded.store_value(i, 'u8');\n return this.encode_struct(value, valueSchema);\n }\n }\n throw new Error(\"Enum key (\".concat(valueKey, \") not found in enum schema: \").concat(JSON.stringify(schema), \" at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_array = function (value, schema) {\n if (utils.isArrayLike(value))\n return this.encode_arraylike(value, schema);\n if (value instanceof ArrayBuffer)\n return this.encode_buffer(value, schema);\n throw new Error(\"Expected Array-like not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(this.fieldPath.join('.')));\n };\n BorshSerializer.prototype.encode_arraylike = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.length, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.length, 'u32');\n }\n // array values\n for (var i = 0; i < value.length; i++) {\n this.encode_value(value[i], schema.array.type);\n }\n };\n BorshSerializer.prototype.encode_buffer = function (value, schema) {\n if (schema.array.len) {\n utils.expect_same_size(value.byteLength, schema.array.len, this.fieldPath);\n }\n else {\n // 4 bytes for length\n this.encoded.store_value(value.byteLength, 'u32');\n }\n // array values\n this.encoded.store_bytes(new Uint8Array(value));\n };\n BorshSerializer.prototype.encode_set = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isSet = value instanceof Set;\n var values = isSet ? Array.from(value.values()) : Object.values(value);\n // 4 bytes for length\n this.encoded.store_value(values.length, 'u32');\n // set values\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value_1 = values_1[_i];\n this.encode_value(value_1, schema.set);\n }\n };\n BorshSerializer.prototype.encode_map = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n var isMap = value instanceof Map;\n var keys = isMap ? Array.from(value.keys()) : Object.keys(value);\n // 4 bytes for length\n this.encoded.store_value(keys.length, 'u32');\n // store key/values\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n this.encode_value(key, schema.map.key);\n this.encode_value(isMap ? value.get(key) : value[key], schema.map.value);\n }\n };\n BorshSerializer.prototype.encode_struct = function (value, schema) {\n this.checkTypes && utils.expect_type(value, 'object', this.fieldPath);\n for (var _i = 0, _a = Object.keys(schema.struct); _i < _a.length; _i++) {\n var key = _a[_i];\n this.fieldPath.push(key);\n this.encode_value(value[key], schema.struct[key]);\n this.fieldPath.pop();\n }\n };\n return BorshSerializer;\n}());\nexports.BorshSerializer = BorshSerializer;\n","\"use strict\";\nexports.__esModule = true;\nexports.integers = void 0;\nexports.integers = ['u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128', 'f32', 'f64'];\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.validate_schema = exports.ErrorSchema = exports.expect_enum = exports.expect_same_size = exports.expect_bigint = exports.expect_type = exports.isArrayLike = void 0;\nvar types_js_1 = require(\"./types.js\");\nfunction isArrayLike(value) {\n // source: https://stackoverflow.com/questions/24048547/checking-if-an-object-is-array-like\n return (Array.isArray(value) ||\n (!!value &&\n typeof value === 'object' &&\n 'length' in value &&\n typeof (value.length) === 'number' &&\n (value.length === 0 ||\n (value.length > 0 &&\n (value.length - 1) in value))));\n}\nexports.isArrayLike = isArrayLike;\nfunction expect_type(value, type, fieldPath) {\n if (typeof (value) !== type) {\n throw new Error(\"Expected \".concat(type, \" not \").concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_type = expect_type;\nfunction expect_bigint(value, fieldPath) {\n var basicType = ['number', 'string', 'bigint', 'boolean'].includes(typeof (value));\n var strObject = typeof (value) === 'object' && value !== null && 'toString' in value;\n if (!basicType && !strObject) {\n throw new Error(\"Expected bigint, number, boolean or string not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_bigint = expect_bigint;\nfunction expect_same_size(length, expected, fieldPath) {\n if (length !== expected) {\n throw new Error(\"Array length \".concat(length, \" does not match schema length \").concat(expected, \" at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_same_size = expect_same_size;\nfunction expect_enum(value, fieldPath) {\n if (typeof (value) !== 'object' || value === null) {\n throw new Error(\"Expected object not \".concat(typeof (value), \"(\").concat(value, \") at \").concat(fieldPath.join('.')));\n }\n}\nexports.expect_enum = expect_enum;\n// Validate Schema\nvar VALID_STRING_TYPES = types_js_1.integers.concat(['bool', 'string']);\nvar VALID_OBJECT_KEYS = ['option', 'enum', 'array', 'set', 'map', 'struct'];\nvar ErrorSchema = /** @class */ (function (_super) {\n __extends(ErrorSchema, _super);\n function ErrorSchema(schema, expected) {\n var message = \"Invalid schema: \".concat(JSON.stringify(schema), \" expected \").concat(expected);\n return _super.call(this, message) || this;\n }\n return ErrorSchema;\n}(Error));\nexports.ErrorSchema = ErrorSchema;\nfunction validate_schema(schema) {\n if (typeof (schema) === 'string' && VALID_STRING_TYPES.includes(schema)) {\n return;\n }\n if (schema && typeof (schema) === 'object') {\n var keys = Object.keys(schema);\n if (keys.length === 1 && VALID_OBJECT_KEYS.includes(keys[0])) {\n var key = keys[0];\n if (key === 'option')\n return validate_schema(schema[key]);\n if (key === 'enum')\n return validate_enum_schema(schema[key]);\n if (key === 'array')\n return validate_array_schema(schema[key]);\n if (key === 'set')\n return validate_schema(schema[key]);\n if (key === 'map')\n return validate_map_schema(schema[key]);\n if (key === 'struct')\n return validate_struct_schema(schema[key]);\n }\n }\n throw new ErrorSchema(schema, VALID_OBJECT_KEYS.join(', ') + ' or ' + VALID_STRING_TYPES.join(', '));\n}\nexports.validate_schema = validate_schema;\nfunction validate_enum_schema(schema) {\n if (!Array.isArray(schema))\n throw new ErrorSchema(schema, 'Array');\n for (var _i = 0, schema_1 = schema; _i < schema_1.length; _i++) {\n var sch = schema_1[_i];\n if (typeof sch !== 'object' || !('struct' in sch)) {\n throw new Error('Missing \"struct\" key in enum schema');\n }\n if (typeof sch.struct !== 'object' || Object.keys(sch.struct).length !== 1) {\n throw new Error('The \"struct\" in each enum must have a single key');\n }\n validate_schema({ struct: sch.struct });\n }\n}\nfunction validate_array_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, '{ type, len? }');\n if (schema.len && typeof schema.len !== 'number') {\n throw new Error(\"Invalid schema: \".concat(schema));\n }\n if ('type' in schema)\n return validate_schema(schema.type);\n throw new ErrorSchema(schema, '{ type, len? }');\n}\nfunction validate_map_schema(schema) {\n if (typeof schema === 'object' && 'key' in schema && 'value' in schema) {\n validate_schema(schema.key);\n validate_schema(schema.value);\n }\n else {\n throw new ErrorSchema(schema, '{ key, value }');\n }\n}\nfunction validate_struct_schema(schema) {\n if (typeof schema !== 'object')\n throw new ErrorSchema(schema, 'object');\n for (var key in schema) {\n validate_schema(schema[key]);\n }\n}\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar BN = require('bn.js');\nvar randomBytes = require('randombytes');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n","'use strict';\n\nmodule.exports = require('./browser/algorithms.json');\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar createHash = require('create-hash');\nvar stream = require('readable-stream');\nvar inherits = require('inherits');\nvar sign = require('./sign');\nvar verify = require('./verify');\n\nvar algorithms = require('./algorithms.json');\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hashType = data.hash;\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nSign.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n this.end();\n var hash = this._hash.digest();\n var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n stream.Writable.call(this);\n\n var data = algorithms[algorithm];\n if (!data) { throw new Error('Unknown message digest'); }\n\n this._hash = createHash(data.hash);\n this._tag = data.id;\n this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n this._hash.update(data);\n done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n this.end();\n var hash = this._hash.digest();\n return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n return new Verify(algorithm);\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n};\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar createHmac = require('create-hmac');\nvar crt = require('browserify-rsa');\nvar EC = require('elliptic').ec;\nvar BN = require('bn.js');\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n var priv = parseKeys(key);\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n return ecSign(hash, priv);\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n return dsaSign(hash, priv, hashType);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = priv.modulus.byteLength();\n var pad = [0, 1];\n while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) { pad.push(hash[i]); }\n\n var out = crt(pad, priv);\n return out;\n}\n\nfunction ecSign(hash, priv) {\n var curveId = curves[priv.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n var curve = new EC(curveId);\n var key = curve.keyFromPrivate(priv.privateKey);\n var out = key.sign(hash);\n\n return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n var x = priv.params.priv_key;\n var p = priv.params.p;\n var q = priv.params.q;\n var g = priv.params.g;\n var r = new BN(0);\n var k;\n var H = bits2int(hash, q).mod(q);\n var s = false;\n var kv = getKey(x, q, hash, algo);\n while (s === false) {\n k = makeKey(q, kv, algo);\n r = makeR(g, k, p, q);\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n if (s.cmpn(0) === 0) {\n s = false;\n r = new BN(0);\n }\n }\n return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n r = r.toArray();\n s = s.toArray();\n\n // Pad values\n if (r[0] & 0x80) { r = [0].concat(r); }\n if (s[0] & 0x80) { s = [0].concat(s); }\n\n var total = r.length + s.length + 4;\n var res = [\n 0x30, total, 0x02, r.length\n ];\n res = res.concat(r, [0x02, s.length], s);\n return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n x = Buffer.from(x.toArray());\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length);\n x = Buffer.concat([zeros, x]);\n }\n var hlen = hash.length;\n var hbits = bits2octets(hash, q);\n var v = Buffer.alloc(hlen);\n v.fill(1);\n var k = Buffer.alloc(hlen);\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n v = createHmac(algo, k).update(v).digest();\n return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n var bits = new BN(obits);\n var shift = (obits.length << 3) - q.bitLength();\n if (shift > 0) { bits.ishrn(shift); }\n return bits;\n}\n\nfunction bits2octets(bits, q) {\n bits = bits2int(bits, q);\n bits = bits.mod(q);\n var out = Buffer.from(bits.toArray());\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length);\n out = Buffer.concat([zeros, out]);\n }\n return out;\n}\n\nfunction makeKey(q, kv, algo) {\n var t;\n var k;\n\n do {\n t = Buffer.alloc(0);\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n t = Buffer.concat([t, kv.v]);\n }\n\n k = bits2int(t, q);\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n } while (k.cmp(q) !== -1);\n\n return k;\n}\n\nfunction makeR(g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n","'use strict';\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer;\nvar BN = require('bn.js');\nvar EC = require('elliptic').ec;\nvar parseKeys = require('parse-asn1');\nvar curves = require('./curves.json');\n\nfunction verify(sig, hash, key, signType, tag) {\n var pub = parseKeys(key);\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n return ecVerify(sig, hash, pub);\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n return dsaVerify(sig, hash, pub);\n }\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n hash = Buffer.concat([tag, hash]);\n var len = pub.modulus.byteLength();\n var pad = [1];\n var padNum = 0;\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff);\n padNum += 1;\n }\n pad.push(0x00);\n var i = -1;\n while (++i < hash.length) {\n pad.push(hash[i]);\n }\n pad = Buffer.from(pad);\n var red = BN.mont(pub.modulus);\n sig = new BN(sig).toRed(red);\n\n sig = sig.redPow(new BN(pub.publicExponent));\n sig = Buffer.from(sig.fromRed().toArray());\n var out = padNum < 8 ? 1 : 0;\n len = Math.min(sig.length, pad.length);\n if (sig.length !== pad.length) { out = 1; }\n\n i = -1;\n while (++i < len) { out |= sig[i] ^ pad[i]; }\n return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')];\n if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n var curve = new EC(curveId);\n var pubkey = pub.data.subjectPrivateKey.data;\n\n return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n var p = pub.data.p;\n var q = pub.data.q;\n var g = pub.data.g;\n var y = pub.data.pub_key;\n var unpacked = parseKeys.signature.decode(sig, 'der');\n var s = unpacked.s;\n var r = unpacked.r;\n checkValue(s, q);\n checkValue(r, q);\n var montp = BN.mont(p);\n var w = s.invm(q);\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q);\n return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\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\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\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\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\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// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 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 r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\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 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 BN.prototype.inspect = 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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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.modn(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);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\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] & (1 << wbit)) >>> wbit;\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 var fftm = new FFTM();\n return fftm.mulp(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 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 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.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(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.modn = function modn (num) {\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 acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\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 return this.strip();\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 BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\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","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 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 r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\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 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 BN.prototype.inspect = 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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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.modn(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);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\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] & (1 << wbit)) >>> wbit;\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 var fftm = new FFTM();\n return fftm.mulp(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 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 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.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(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.modn = function modn (num) {\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 acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\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 return this.strip();\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 BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\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","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n if(buf[p.place] === 0x00) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n if ((data[p.place] & 128) !== 0) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n return false;\n }\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n var i;\n for (i = 0; i < naf.length; i += 1) {\n naf[i] = 0;\n }\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 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 r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\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 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 BN.prototype.inspect = 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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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.modn(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);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\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] & (1 << wbit)) >>> wbit;\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 var fftm = new FFTM();\n return fftm.mulp(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 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 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.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(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.modn = function modn (num) {\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 acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\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 return this.strip();\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 BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\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","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\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","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","var util = require('util')\nvar isProperty = require('is-property')\n\nvar INDENT_START = /[\\{\\[]/\nvar INDENT_END = /[\\}\\]]/\n\n// from https://mathiasbynens.be/notes/reserved-keywords\nvar RESERVED = [\n 'do',\n 'if',\n 'in',\n 'for',\n 'let',\n 'new',\n 'try',\n 'var',\n 'case',\n 'else',\n 'enum',\n 'eval',\n 'null',\n 'this',\n 'true',\n 'void',\n 'with',\n 'await',\n 'break',\n 'catch',\n 'class',\n 'const',\n 'false',\n 'super',\n 'throw',\n 'while',\n 'yield',\n 'delete',\n 'export',\n 'import',\n 'public',\n 'return',\n 'static',\n 'switch',\n 'typeof',\n 'default',\n 'extends',\n 'finally',\n 'package',\n 'private',\n 'continue',\n 'debugger',\n 'function',\n 'arguments',\n 'interface',\n 'protected',\n 'implements',\n 'instanceof',\n 'NaN',\n 'undefined'\n]\n\nvar RESERVED_MAP = {}\n\nfor (var i = 0; i < RESERVED.length; i++) {\n RESERVED_MAP[RESERVED[i]] = true\n}\n\nvar isVariable = function (name) {\n return isProperty(name) && !RESERVED_MAP.hasOwnProperty(name)\n}\n\nvar formats = {\n s: function(s) {\n return '' + s\n },\n d: function(d) {\n return '' + Number(d)\n },\n o: function(o) {\n return JSON.stringify(o)\n }\n}\n\nvar genfun = function() {\n var lines = []\n var indent = 0\n var vars = {}\n\n var push = function(str) {\n var spaces = ''\n while (spaces.length < indent*2) spaces += ' '\n lines.push(spaces+str)\n }\n\n var pushLine = function(line) {\n if (INDENT_END.test(line.trim()[0]) && INDENT_START.test(line[line.length-1])) {\n indent--\n push(line)\n indent++\n return\n }\n if (INDENT_START.test(line[line.length-1])) {\n push(line)\n indent++\n return\n }\n if (INDENT_END.test(line.trim()[0])) {\n indent--\n push(line)\n return\n }\n\n push(line)\n }\n\n var line = function(fmt) {\n if (!fmt) return line\n\n if (arguments.length === 1 && fmt.indexOf('\\n') > -1) {\n var lines = fmt.trim().split('\\n')\n for (var i = 0; i < lines.length; i++) {\n pushLine(lines[i].trim())\n }\n } else {\n pushLine(util.format.apply(util, arguments))\n }\n\n return line\n }\n\n line.scope = {}\n line.formats = formats\n\n line.sym = function(name) {\n if (!name || !isVariable(name)) name = 'tmp'\n if (!vars[name]) vars[name] = 0\n return name + (vars[name]++ || '')\n }\n\n line.property = function(obj, name) {\n if (arguments.length === 1) {\n name = obj\n obj = ''\n }\n\n name = name + ''\n\n if (isProperty(name)) return (obj ? obj + '.' + name : name)\n return obj ? obj + '[' + JSON.stringify(name) + ']' : JSON.stringify(name)\n }\n\n line.toString = function() {\n return lines.join('\\n')\n }\n\n line.toFunction = function(scope) {\n if (!scope) scope = {}\n\n var src = 'return ('+line.toString()+')'\n\n Object.keys(line.scope).forEach(function (key) {\n if (!scope[key]) scope[key] = line.scope[key]\n })\n\n var keys = Object.keys(scope).map(function(key) {\n return key\n })\n\n var vals = keys.map(function(key) {\n return scope[key]\n })\n\n return Function.apply(null, keys.concat(src)).apply(null, vals)\n }\n\n if (arguments.length) line.apply(null, arguments)\n\n return line\n}\n\ngenfun.formats = formats\nmodule.exports = genfun\n","var isProperty = require('is-property')\n\nvar gen = function(obj, prop) {\n return isProperty(prop) ? obj+'.'+prop : obj+'['+JSON.stringify(prop)+']'\n}\n\ngen.valid = isProperty\ngen.property = function (prop) {\n return isProperty(prop) ? prop : JSON.stringify(prop)\n}\n\nmodule.exports = gen\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*!\n * http-errors\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar deprecate = require('depd')('http-errors')\nvar setPrototypeOf = require('setprototypeof')\nvar statuses = require('statuses')\nvar inherits = require('inherits')\nvar toIdentifier = require('toidentifier')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createError\nmodule.exports.HttpError = createHttpErrorConstructor()\n\n// Populate exports for all constructors\npopulateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)\n\n/**\n * Get the code class of a status code.\n * @private\n */\n\nfunction codeClass (status) {\n return Number(String(status).charAt(0) + '00')\n}\n\n/**\n * Create a new HTTP Error.\n *\n * @returns {Error}\n * @public\n */\n\nfunction createError () {\n // so much arity going on ~_~\n var err\n var msg\n var status = 500\n var props = {}\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (arg instanceof Error) {\n err = arg\n status = err.status || err.statusCode || status\n continue\n }\n switch (typeof arg) {\n case 'string':\n msg = arg\n break\n case 'number':\n status = arg\n if (i !== 0) {\n deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)')\n }\n break\n case 'object':\n props = arg\n break\n }\n }\n\n if (typeof status === 'number' && (status < 400 || status >= 600)) {\n deprecate('non-error status code; use only 4xx or 5xx status codes')\n }\n\n if (typeof status !== 'number' ||\n (!statuses[status] && (status < 400 || status >= 600))) {\n status = 500\n }\n\n // constructor\n var HttpError = createError[status] || createError[codeClass(status)]\n\n if (!err) {\n // create error\n err = HttpError\n ? new HttpError(msg)\n : new Error(msg || statuses[status])\n Error.captureStackTrace(err, createError)\n }\n\n if (!HttpError || !(err instanceof HttpError) || err.status !== status) {\n // add properties to generic error\n err.expose = status < 500\n err.status = err.statusCode = status\n }\n\n for (var key in props) {\n if (key !== 'status' && key !== 'statusCode') {\n err[key] = props[key]\n }\n }\n\n return err\n}\n\n/**\n * Create HTTP error abstract base class.\n * @private\n */\n\nfunction createHttpErrorConstructor () {\n function HttpError () {\n throw new TypeError('cannot construct abstract class')\n }\n\n inherits(HttpError, Error)\n\n return HttpError\n}\n\n/**\n * Create a constructor for a client error.\n * @private\n */\n\nfunction createClientErrorConstructor (HttpError, name, code) {\n var className = name.match(/Error$/) ? name : name + 'Error'\n\n function ClientError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ClientError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ClientError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ClientError, HttpError)\n nameFunc(ClientError, className)\n\n ClientError.prototype.status = code\n ClientError.prototype.statusCode = code\n ClientError.prototype.expose = true\n\n return ClientError\n}\n\n/**\n * Create a constructor for a server error.\n * @private\n */\n\nfunction createServerErrorConstructor (HttpError, name, code) {\n var className = name.match(/Error$/) ? name : name + 'Error'\n\n function ServerError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ServerError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ServerError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ServerError, HttpError)\n nameFunc(ServerError, className)\n\n ServerError.prototype.status = code\n ServerError.prototype.statusCode = code\n ServerError.prototype.expose = false\n\n return ServerError\n}\n\n/**\n * Set the name of a function, if possible.\n * @private\n */\n\nfunction nameFunc (func, name) {\n var desc = Object.getOwnPropertyDescriptor(func, 'name')\n\n if (desc && desc.configurable) {\n desc.value = name\n Object.defineProperty(func, 'name', desc)\n }\n}\n\n/**\n * Populate the exports object with constructors for every error class.\n * @private\n */\n\nfunction populateConstructorExports (exports, codes, HttpError) {\n codes.forEach(function forEachCode (code) {\n var CodeError\n var name = toIdentifier(statuses[code])\n\n switch (codeClass(code)) {\n case 400:\n CodeError = createClientErrorConstructor(HttpError, name, code)\n break\n case 500:\n CodeError = createServerErrorConstructor(HttpError, name, code)\n break\n }\n\n if (CodeError) {\n // export the constructor\n exports[code] = CodeError\n exports[name] = CodeError\n }\n })\n\n // backwards-compatibility\n exports[\"I'mateapot\"] = deprecate.function(exports.ImATeapot,\n '\"I\\'mateapot\"; use \"ImATeapot\" instead')\n}\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = 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","'use strict'\n/* eslint no-proto: 0 */\nmodule.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)\n\nfunction setProtoOf (obj, proto) {\n obj.__proto__ = proto\n return obj\n}\n\nfunction mixinProperties (obj, proto) {\n for (var prop in proto) {\n if (!obj.hasOwnProperty(prop)) {\n obj[prop] = proto[prop]\n }\n }\n return obj\n}\n","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.STATUS_CODES = codes\n\n// array of status codes\nstatus.codes = populateStatusesMap(status, codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Populate the statuses map for given codes.\n * @private\n */\n\nfunction populateStatusesMap (statuses, codes) {\n var arr = []\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // Populate properties\n statuses[status] = message\n statuses[message] = status\n statuses[message.toLowerCase()] = status\n\n // Add to array\n arr.push(status)\n })\n\n return arr\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n if (!status[code]) throw new Error('invalid status code: ' + code)\n return code\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n if (!status[n]) throw new Error('invalid status code: ' + n)\n return n\n }\n\n n = status[code.toLowerCase()]\n if (!n) throw new Error('invalid status message: \"' + code + '\"')\n return n\n}\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n","'use strict'\n\nmodule.exports = isMobile\nmodule.exports.isMobile = isMobile\nmodule.exports.default = isMobile\n\nconst mobileRE = /(android|bb\\d+|meego).+mobile|armv7l|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i\nconst notMobileRE = /CrOS/\n\nconst tabletRE = /android|ipad|playbook|silk/i\n\nfunction isMobile (opts) {\n if (!opts) opts = {}\n let ua = opts.ua\n if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent\n if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') {\n ua = ua.headers['user-agent']\n }\n if (typeof ua !== 'string') return false\n\n let result =\n (mobileRE.test(ua) && !notMobileRE.test(ua)) ||\n (!!opts.tablet && tabletRE.test(ua))\n\n if (\n !result &&\n opts.tablet &&\n opts.featureDetect &&\n navigator &&\n navigator.maxTouchPoints > 1 &&\n ua.indexOf('Macintosh') !== -1 &&\n ua.indexOf('Safari') !== -1\n ) {\n result = true\n }\n\n return result\n}\n","var reIpv4FirstPass = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/\n\nvar reSubnetString = /\\/\\d{1,3}(?=%|$)/\nvar reForwardSlash = /\\//\nvar reZone = /%.*$/\nvar reBadCharacters = /([^0-9a-f:/%])/i\nvar reBadAddress = /([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\\/$)/i\n\nfunction validate4 (input) {\n if (!(reIpv4FirstPass.test(input))) return false\n\n var parts = input.split('.')\n\n if (parts.length !== 4) return false\n\n if (parts[0][0] === '0' && parts[0].length > 1) return false\n if (parts[1][0] === '0' && parts[1].length > 1) return false\n if (parts[2][0] === '0' && parts[2].length > 1) return false\n if (parts[3][0] === '0' && parts[3].length > 1) return false\n\n var n0 = Number(parts[0])\n var n1 = Number(parts[1])\n var n2 = Number(parts[2])\n var n3 = Number(parts[3])\n\n return (n0 >= 0 && n0 < 256 && n1 >= 0 && n1 < 256 && n2 >= 0 && n2 < 256 && n3 >= 0 && n3 < 256)\n}\n\nfunction validate6 (input) {\n var withoutSubnet = input.replace(reSubnetString, '')\n var hasSubnet = (input.length !== withoutSubnet.length)\n\n // FIXME: this should probably be an option in the future\n if (hasSubnet) return false\n\n if (!hasSubnet) {\n if (reForwardSlash.test(input)) return false\n }\n\n var withoutZone = withoutSubnet.replace(reZone, '')\n var lastPartSeparator = withoutZone.lastIndexOf(':')\n\n if (lastPartSeparator === -1) return false\n\n var lastPart = withoutZone.substring(lastPartSeparator + 1)\n var hasV4Part = validate4(lastPart)\n var address = (hasV4Part ? withoutZone.substring(0, lastPartSeparator + 1) + '1234:5678' : withoutZone)\n\n if (reBadCharacters.test(address)) return false\n if (reBadAddress.test(address)) return false\n\n var halves = address.split('::')\n\n if (halves.length > 2) return false\n\n if (halves.length === 2) {\n var first = (halves[0] === '' ? [] : halves[0].split(':'))\n var last = (halves[1] === '' ? [] : halves[1].split(':'))\n var remainingLength = 8 - (first.length + last.length)\n\n if (remainingLength <= 0) return false\n } else {\n if (address.split(':').length !== 8) return false\n }\n\n return true\n}\n\nfunction validate (input) {\n return validate4(input) || validate6(input)\n}\n\nmodule.exports = function validator (options) {\n if (!options) options = {}\n\n if (options.version === 4) return validate4\n if (options.version === 6) return validate6\n if (options.version == null) return validate\n\n throw new Error('Unknown version: ' + options.version)\n}\n\nmodule.exports['__all_regexes__'] = [\n reIpv4FirstPass,\n reSubnetString,\n reForwardSlash,\n reZone,\n reBadCharacters,\n reBadAddress\n]\n","var createIpValidator = require('is-my-ip-valid')\n\nvar reEmailWhitespace = /\\s/\nvar reHostnameFirstPass = /^[a-zA-Z0-9.-]+$/\nvar reHostnamePart = /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/\nvar rePhoneFirstPass = /^\\+[0-9][0-9 ]{5,27}[0-9]$/\nvar rePhoneDoubleSpace = / {2}/\nvar rePhoneGlobalSpace = / /g\n\nexports['date-time'] = /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-[0-9]{2}[tT ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+|)([zZ]|[+-]\\d{2}:\\d{2})$/\nexports['date'] = /^\\d{4}-(?:0[0-9]{1}|1[0-2]{1})-[0-9]{2}$/\nexports['time'] = /^\\d{2}:\\d{2}:\\d{2}$/\nexports['email'] = function (input) { return (input.indexOf('@') !== -1) && (!reEmailWhitespace.test(input)) }\nexports['ip-address'] = exports['ipv4'] = createIpValidator({ version: 4 })\nexports['ipv6'] = createIpValidator({ version: 6 })\nexports['uri'] = /^[a-zA-Z][a-zA-Z0-9+\\-.]*:[^\\s]*$/\nexports['color'] = /(#?([0-9A-Fa-f]{3,6})\\b)|(aqua)|(black)|(blue)|(fuchsia)|(gray)|(green)|(lime)|(maroon)|(navy)|(olive)|(orange)|(purple)|(red)|(silver)|(teal)|(white)|(yellow)|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\))/\nexports['hostname'] = function (input) {\n if (!(reHostnameFirstPass.test(input))) return false\n\n var parts = input.split('.')\n\n for (var i = 0; i < parts.length; i++) {\n if (!(reHostnamePart.test(parts[i]))) return false\n }\n\n return true\n}\nexports['alpha'] = /^[a-zA-Z]+$/\nexports['alphanumeric'] = /^[a-zA-Z0-9]+$/\nexports['style'] = /.:\\s*[^;]/g\nexports['phone'] = function (input) {\n if (!(rePhoneFirstPass.test(input))) return false\n if (rePhoneDoubleSpace.test(input)) return false\n\n var digits = input.substring(1).replace(rePhoneGlobalSpace, '').length\n\n return (digits >= 7 && digits <= 15)\n}\nexports['utc-millisec'] = /^[0-9]{1,15}\\.?[0-9]{0,15}$/\n","var genobj = require('generate-object-property')\nvar genfun = require('generate-function')\nvar jsonpointer = require('jsonpointer')\nvar xtend = require('xtend')\nvar formats = require('./formats')\n\nvar get = function(obj, additionalSchemas, ptr) {\n\n var visit = function(sub) {\n if (sub && sub.id === ptr) return sub\n if (typeof sub !== 'object' || !sub) return null\n return Object.keys(sub).reduce(function(res, k) {\n return res || visit(sub[k])\n }, null)\n }\n\n var res = visit(obj)\n if (res) return res\n\n ptr = ptr.replace(/^#/, '')\n ptr = ptr.replace(/\\/$/, '')\n\n try {\n return jsonpointer.get(obj, decodeURI(ptr))\n } catch (err) {\n var end = ptr.indexOf('#')\n var other\n // external reference\n if (end !== 0) {\n // fragment doesn't exist.\n if (end === -1) {\n other = additionalSchemas[ptr]\n } else {\n var ext = ptr.slice(0, end)\n other = additionalSchemas[ext]\n var fragment = ptr.slice(end).replace(/^#/, '')\n try {\n return jsonpointer.get(other, fragment)\n } catch (err) {}\n }\n } else {\n other = additionalSchemas[ptr]\n }\n return other || null\n }\n}\n\nvar types = {}\n\ntypes.any = function() {\n return 'true'\n}\n\ntypes.null = function(name) {\n return name+' === null'\n}\n\ntypes.boolean = function(name) {\n return 'typeof '+name+' === \"boolean\"'\n}\n\ntypes.array = function(name) {\n return 'Array.isArray('+name+')'\n}\n\ntypes.object = function(name) {\n return 'typeof '+name+' === \"object\" && '+name+' && !Array.isArray('+name+')'\n}\n\ntypes.number = function(name) {\n return 'typeof '+name+' === \"number\" && isFinite('+name+')'\n}\n\ntypes.integer = function(name) {\n return 'typeof '+name+' === \"number\" && (Math.floor('+name+') === '+name+' || '+name+' > 9007199254740992 || '+name+' < -9007199254740992)'\n}\n\ntypes.string = function(name) {\n return 'typeof '+name+' === \"string\"'\n}\n\nvar unique = function(array, len) {\n len = Math.min(len === -1 ? array.length : len, array.length)\n var list = []\n for (var i = 0; i < len; i++) {\n list.push(typeof array[i] === 'object' ? JSON.stringify(array[i]) : array[i])\n }\n for (var i = 1; i < list.length; i++) {\n if (list.indexOf(list[i]) !== i) return false\n }\n return true\n}\n\nvar isMultipleOf = function(name, multipleOf) {\n var res;\n var factor = ((multipleOf | 0) !== multipleOf) ? Math.pow(10, multipleOf.toString().split('.').pop().length) : 1\n if (factor > 1) {\n var factorName = ((name | 0) !== name) ? Math.pow(10, name.toString().split('.').pop().length) : 1\n if (factorName > factor) res = true\n else res = Math.round(factor * name) % (factor * multipleOf)\n }\n else res = name % multipleOf;\n return !res;\n}\n\nvar testLimitedRegex = function (r, s, maxLength) {\n if (maxLength > -1 && s.length > maxLength) return true\n return r.test(s)\n}\n\nvar compile = function(schema, cache, root, reporter, opts) {\n var fmts = opts ? xtend(formats, opts.formats) : formats\n var scope = {unique:unique, formats:fmts, isMultipleOf:isMultipleOf, testLimitedRegex:testLimitedRegex}\n var verbose = opts ? !!opts.verbose : false;\n var greedy = opts && opts.greedy !== undefined ?\n opts.greedy : false;\n\n var syms = {}\n var allocated = []\n var gensym = function(name) {\n var res = name+(syms[name] = (syms[name] || 0)+1)\n allocated.push(res)\n return res\n }\n\n var formatName = function(field) {\n var s = JSON.stringify(field)\n try {\n var pattern = /\\[([^\\[\\]\"]+)\\]/\n while (pattern.test(s)) s = s.replace(pattern, replacer)\n return s\n } catch (_) {\n return JSON.stringify(field)\n }\n\n function replacer (match, v) {\n if (allocated.indexOf(v) === -1) throw new Error('Unreplaceable')\n return '.\" + ' + v + ' + \"'\n }\n }\n\n var reversePatterns = {}\n var patterns = function(p) {\n if (reversePatterns[p]) return reversePatterns[p]\n var n = gensym('pattern')\n scope[n] = new RegExp(p)\n reversePatterns[p] = n\n return n\n }\n\n var vars = ['i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','z']\n var genloop = function() {\n var v = vars.shift()\n vars.push(v+v[0])\n allocated.push(v)\n return v\n }\n\n var visit = function(name, node, reporter, filter, schemaPath) {\n var properties = node.properties\n var type = node.type\n var tuple = false\n\n if (Array.isArray(node.items)) { // tuple type\n properties = {}\n node.items.forEach(function(item, i) {\n properties[i] = item\n })\n type = 'array'\n tuple = true\n }\n\n var indent = 0\n var error = function(msg, prop, value) {\n validate('errors++')\n if (reporter === true) {\n validate('if (validate.errors === null) validate.errors = []')\n if (verbose) {\n validate(\n 'validate.errors.push({field:%s,message:%s,value:%s,type:%s,schemaPath:%s})',\n formatName(prop || name),\n JSON.stringify(msg),\n value || name,\n JSON.stringify(type),\n JSON.stringify(schemaPath)\n )\n } else {\n validate('validate.errors.push({field:%s,message:%s})', formatName(prop || name), JSON.stringify(msg))\n }\n }\n }\n\n if (node.required === true) {\n indent++\n validate('if (%s === undefined) {', name)\n error('is required')\n validate('} else {')\n } else {\n indent++\n validate('if (%s !== undefined) {', name)\n }\n\n var valid = [].concat(type)\n .map(function(t) {\n if (t && !types.hasOwnProperty(t)) {\n throw new Error('Unknown type: ' + t)\n }\n\n return types[t || 'any'](name)\n })\n .join(' || ') || 'true'\n\n if (valid !== 'true') {\n indent++\n validate('if (!(%s)) {', valid)\n error('is the wrong type')\n validate('} else {')\n }\n\n if (tuple) {\n if (node.additionalItems === false) {\n validate('if (%s.length > %d) {', name, node.items.length)\n error('has additional items')\n validate('}')\n } else if (node.additionalItems) {\n var i = genloop()\n validate('for (var %s = %d; %s < %s.length; %s++) {', i, node.items.length, i, name, i)\n visit(name+'['+i+']', node.additionalItems, reporter, filter, schemaPath.concat('additionalItems'))\n validate('}')\n }\n }\n\n if (node.format && fmts[node.format]) {\n if (type !== 'string' && formats[node.format]) validate('if (%s) {', types.string(name))\n var n = gensym('format')\n scope[n] = fmts[node.format]\n\n if (typeof scope[n] === 'function') validate('if (!%s(%s)) {', n, name)\n else validate('if (!testLimitedRegex(%s, %s, %d)) {', n, name, typeof node.maxLength === 'undefined' ? -1 : node.maxLength)\n error('must be '+node.format+' format')\n validate('}')\n if (type !== 'string' && formats[node.format]) validate('}')\n }\n\n if (Array.isArray(node.required)) {\n var n = gensym('missing')\n validate('var %s = 0', n)\n var checkRequired = function (req) {\n var prop = genobj(name, req);\n validate('if (%s === undefined) {', prop)\n error('is required', prop)\n validate('%s++', n)\n validate('}')\n }\n validate('if ((%s)) {', type !== 'object' ? types.object(name) : 'true')\n node.required.map(checkRequired)\n validate('}');\n if (!greedy) {\n validate('if (%s === 0) {', n)\n indent++\n }\n }\n\n if (node.uniqueItems) {\n if (type !== 'array') validate('if (%s) {', types.array(name))\n validate('if (!(unique(%s, %d))) {', name, node.maxItems || -1)\n error('must be unique')\n validate('}')\n if (type !== 'array') validate('}')\n }\n\n if (node.enum) {\n var complex = node.enum.some(function(e) {\n return typeof e === 'object'\n })\n\n var compare = complex ?\n function(e) {\n return 'JSON.stringify('+name+')'+' !== JSON.stringify('+JSON.stringify(e)+')'\n } :\n function(e) {\n return name+' !== '+JSON.stringify(e)\n }\n\n validate('if (%s) {', node.enum.map(compare).join(' && ') || 'false')\n error('must be an enum value')\n validate('}')\n }\n\n if (node.dependencies) {\n if (type !== 'object') validate('if (%s) {', types.object(name))\n\n Object.keys(node.dependencies).forEach(function(key) {\n var deps = node.dependencies[key]\n if (typeof deps === 'string') deps = [deps]\n\n var exists = function(k) {\n return genobj(name, k) + ' !== undefined'\n }\n\n if (Array.isArray(deps)) {\n validate('if (%s !== undefined && !(%s)) {', genobj(name, key), deps.map(exists).join(' && ') || 'true')\n error('dependencies not set')\n validate('}')\n }\n if (typeof deps === 'object') {\n validate('if (%s !== undefined) {', genobj(name, key))\n visit(name, deps, reporter, filter, schemaPath.concat(['dependencies', key]))\n validate('}')\n }\n })\n\n if (type !== 'object') validate('}')\n }\n\n if (node.additionalProperties || node.additionalProperties === false) {\n if (type !== 'object') validate('if (%s) {', types.object(name))\n\n var i = genloop()\n var keys = gensym('keys')\n\n var toCompare = function(p) {\n return keys+'['+i+'] !== '+JSON.stringify(p)\n }\n\n var toTest = function(p) {\n return '!'+patterns(p)+'.test('+keys+'['+i+'])'\n }\n\n var additionalProp = Object.keys(properties || {}).map(toCompare)\n .concat(Object.keys(node.patternProperties || {}).map(toTest))\n .join(' && ') || 'true'\n\n validate('var %s = Object.keys(%s)', keys, name)\n ('for (var %s = 0; %s < %s.length; %s++) {', i, i, keys, i)\n ('if (%s) {', additionalProp)\n\n if (node.additionalProperties === false) {\n if (filter) validate('delete %s', name+'['+keys+'['+i+']]')\n error('has additional properties', null, JSON.stringify(name+'.') + ' + ' + keys + '['+i+']')\n } else {\n visit(name+'['+keys+'['+i+']]', node.additionalProperties, reporter, filter, schemaPath.concat(['additionalProperties']))\n }\n\n validate\n ('}')\n ('}')\n\n if (type !== 'object') validate('}')\n }\n\n if (node.$ref) {\n var sub = get(root, opts && opts.schemas || {}, node.$ref)\n if (sub) {\n var fn = cache[node.$ref]\n if (!fn) {\n cache[node.$ref] = function proxy(data) {\n return fn(data)\n }\n fn = compile(sub, cache, root, false, opts)\n }\n var n = gensym('ref')\n scope[n] = fn\n validate('if (!(%s(%s))) {', n, name)\n error('referenced schema does not match')\n validate('}')\n }\n }\n\n if (node.not) {\n var prev = gensym('prev')\n validate('var %s = errors', prev)\n visit(name, node.not, false, filter, schemaPath.concat('not'))\n validate('if (%s === errors) {', prev)\n error('negative schema matches')\n validate('} else {')\n ('errors = %s', prev)\n ('}')\n }\n\n if (node.items && !tuple) {\n if (type !== 'array') validate('if (%s) {', types.array(name))\n\n var i = genloop()\n validate('for (var %s = 0; %s < %s.length; %s++) {', i, i, name, i)\n visit(name+'['+i+']', node.items, reporter, filter, schemaPath.concat('items'))\n validate('}')\n\n if (type !== 'array') validate('}')\n }\n\n if (node.patternProperties) {\n if (type !== 'object') validate('if (%s) {', types.object(name))\n var keys = gensym('keys')\n var i = genloop()\n validate\n ('var %s = Object.keys(%s)', keys, name)\n ('for (var %s = 0; %s < %s.length; %s++) {', i, i, keys, i)\n\n Object.keys(node.patternProperties).forEach(function(key) {\n var p = patterns(key)\n validate('if (%s.test(%s)) {', p, keys+'['+i+']')\n visit(name+'['+keys+'['+i+']]', node.patternProperties[key], reporter, filter, schemaPath.concat(['patternProperties', key]))\n validate('}')\n })\n\n validate('}')\n if (type !== 'object') validate('}')\n }\n\n if (node.pattern) {\n var p = patterns(node.pattern)\n if (type !== 'string') validate('if (%s) {', types.string(name))\n validate('if (!(testLimitedRegex(%s, %s, %d))) {', p, name, typeof node.maxLength === 'undefined' ? -1 : node.maxLength)\n error('pattern mismatch')\n validate('}')\n if (type !== 'string') validate('}')\n }\n\n if (node.allOf) {\n node.allOf.forEach(function(sch, key) {\n visit(name, sch, reporter, filter, schemaPath.concat(['allOf', key]))\n })\n }\n\n if (node.anyOf && node.anyOf.length) {\n var prev = gensym('prev')\n\n node.anyOf.forEach(function(sch, i) {\n if (i === 0) {\n validate('var %s = errors', prev)\n } else {\n validate('if (errors !== %s) {', prev)\n ('errors = %s', prev)\n }\n visit(name, sch, false, false, schemaPath)\n })\n node.anyOf.forEach(function(sch, i) {\n if (i) validate('}')\n })\n validate('if (%s !== errors) {', prev)\n error('no schemas match')\n validate('}')\n }\n\n if (node.oneOf && node.oneOf.length) {\n var prev = gensym('prev')\n var passes = gensym('passes')\n\n validate\n ('var %s = errors', prev)\n ('var %s = 0', passes)\n\n node.oneOf.forEach(function(sch, i) {\n visit(name, sch, false, false, schemaPath)\n validate('if (%s === errors) {', prev)\n ('%s++', passes)\n ('} else {')\n ('errors = %s', prev)\n ('}')\n })\n\n validate('if (%s !== 1) {', passes)\n error('no (or more than one) schemas match')\n validate('}')\n }\n\n if (node.multipleOf !== undefined) {\n if (type !== 'number' && type !== 'integer') validate('if (%s) {', types.number(name))\n\n validate('if (!isMultipleOf(%s, %d)) {', name, node.multipleOf)\n\n error('has a remainder')\n validate('}')\n\n if (type !== 'number' && type !== 'integer') validate('}')\n }\n\n if (node.maxProperties !== undefined) {\n if (type !== 'object') validate('if (%s) {', types.object(name))\n\n validate('if (Object.keys(%s).length > %d) {', name, node.maxProperties)\n error('has more properties than allowed')\n validate('}')\n\n if (type !== 'object') validate('}')\n }\n\n if (node.minProperties !== undefined) {\n if (type !== 'object') validate('if (%s) {', types.object(name))\n\n validate('if (Object.keys(%s).length < %d) {', name, node.minProperties)\n error('has less properties than allowed')\n validate('}')\n\n if (type !== 'object') validate('}')\n }\n\n if (node.maxItems !== undefined) {\n if (type !== 'array') validate('if (%s) {', types.array(name))\n\n validate('if (%s.length > %d) {', name, node.maxItems)\n error('has more items than allowed')\n validate('}')\n\n if (type !== 'array') validate('}')\n }\n\n if (node.minItems !== undefined) {\n if (type !== 'array') validate('if (%s) {', types.array(name))\n\n validate('if (%s.length < %d) {', name, node.minItems)\n error('has less items than allowed')\n validate('}')\n\n if (type !== 'array') validate('}')\n }\n\n if (node.maxLength !== undefined) {\n if (type !== 'string') validate('if (%s) {', types.string(name))\n\n validate('if (%s.length > %d) {', name, node.maxLength)\n error('has longer length than allowed')\n validate('}')\n\n if (type !== 'string') validate('}')\n }\n\n if (node.minLength !== undefined) {\n if (type !== 'string') validate('if (%s) {', types.string(name))\n\n validate('if (%s.length < %d) {', name, node.minLength)\n error('has less length than allowed')\n validate('}')\n\n if (type !== 'string') validate('}')\n }\n\n if (node.minimum !== undefined) {\n if (type !== 'number' && type !== 'integer') validate('if (%s) {', types.number(name))\n\n validate('if (%s %s %d) {', name, node.exclusiveMinimum ? '<=' : '<', node.minimum)\n error('is less than minimum')\n validate('}')\n\n if (type !== 'number' && type !== 'integer') validate('}')\n }\n\n if (node.maximum !== undefined) {\n if (type !== 'number' && type !== 'integer') validate('if (%s) {', types.number(name))\n\n validate('if (%s %s %d) {', name, node.exclusiveMaximum ? '>=' : '>', node.maximum)\n error('is more than maximum')\n validate('}')\n\n if (type !== 'number' && type !== 'integer') validate('}')\n }\n\n if (properties) {\n Object.keys(properties).forEach(function(p) {\n if (Array.isArray(type) && type.indexOf('null') !== -1) validate('if (%s !== null) {', name)\n\n visit(\n genobj(name, p),\n properties[p],\n reporter,\n filter,\n schemaPath.concat(tuple ? p : ['properties', p])\n )\n\n if (Array.isArray(type) && type.indexOf('null') !== -1) validate('}')\n })\n }\n\n while (indent--) validate('}')\n }\n\n var validate = genfun\n ('function validate(data) {')\n // Since undefined is not a valid JSON value, we coerce to null and other checks will catch this\n ('if (data === undefined) data = null')\n ('validate.errors = null')\n ('var errors = 0')\n\n visit('data', schema, reporter, opts && opts.filter, [])\n\n validate\n ('return errors === 0')\n ('}')\n\n validate = validate.toFunction(scope)\n validate.errors = null\n\n if (Object.defineProperty) {\n Object.defineProperty(validate, 'error', {\n get: function() {\n if (!validate.errors) return ''\n return validate.errors.map(function(err) {\n return err.field + ' ' + err.message;\n }).join('\\n')\n }\n })\n }\n\n validate.toJSON = function() {\n return schema\n }\n\n return validate\n}\n\nmodule.exports = function(schema, opts) {\n if (typeof schema === 'string') schema = JSON.parse(schema)\n return compile(schema, {}, schema, true, opts)\n}\n\nmodule.exports.filter = function(schema, opts) {\n var validate = module.exports(schema, xtend(opts, {filter: true}))\n return function(sch) {\n validate(sch)\n return sch\n }\n}\n","\"use strict\"\nfunction isProperty(str) {\n return /^[$A-Z\\_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc][$A-Z\\_a-z\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc0-9\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19b0-\\u19c0\\u19c8\\u19c9\\u19d0-\\u19d9\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1dc0-\\u1de6\\u1dfc-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua900-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f]*$/.test(str)\n}\nmodule.exports = isProperty","/**\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","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i p\n\n if (typeof obj[part] === 'undefined') {\n // support setting of /-\n if (Array.isArray(obj) && part === '-') {\n part = obj.length\n }\n\n // support nested objects/array when setting values\n if (hasNextPart) {\n if ((pointer[p] !== '' && pointer[p] < Infinity) || pointer[p] === '-') obj[part] = []\n else obj[part] = {}\n }\n }\n\n if (!hasNextPart) break\n obj = obj[part]\n }\n\n var oldValue = obj[part]\n if (value === undefined) delete obj[part]\n else obj[part] = value\n return oldValue\n}\n\nfunction compilePointer (pointer) {\n if (typeof pointer === 'string') {\n pointer = pointer.split('/')\n if (pointer[0] === '') return pointer\n throw new Error('Invalid JSON pointer.')\n } else if (Array.isArray(pointer)) {\n for (const part of pointer) {\n if (typeof part !== 'string' && typeof part !== 'number') {\n throw new Error('Invalid JSON pointer. Must be of type string or number.')\n }\n }\n return pointer\n }\n\n throw new Error('Invalid JSON pointer.')\n}\n\nfunction get (obj, pointer) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n var len = pointer.length\n if (len === 1) return obj\n\n for (var p = 1; p < len;) {\n obj = obj[untilde(pointer[p++])]\n if (len === p) return obj\n if (typeof obj !== 'object' || obj === null) return undefined\n }\n}\n\nfunction set (obj, pointer, value) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n if (pointer.length === 0) throw new Error('Invalid JSON pointer for set.')\n return setter(obj, pointer, value)\n}\n\nfunction compile (pointer) {\n var compiled = compilePointer(pointer)\n return {\n get: function (object) {\n return get(object, compiled)\n },\n set: function (object, value) {\n return set(object, compiled, value)\n }\n }\n}\n\nexports.get = get\nexports.set = set\nexports.compile = compile\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","/**\n * A doubly linked list-based Least Recently Used (LRU) cache. Will keep most\n * recently used items while discarding least recently used items when its limit\n * is reached.\n *\n * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson \n * See README.md for details.\n *\n * Illustration of the design:\n *\n * entry entry entry entry\n * ______ ______ ______ ______\n * | head |.newer => | |.newer => | |.newer => | tail |\n * | A | | B | | C | | D |\n * |______| <= older.|______| <= older.|______| <= older.|______|\n *\n * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added\n */\n!function(g,f){\n if (typeof exports == 'object' && typeof module != \"undefined\") {\n f(exports)\n } else if (typeof define == 'function' && define.amd) {\n define([\"exports\"], f)\n } else {\n f((g = g || self)[\"lru_map\"] = (g[\"lru_map\"] || {}))\n }\n}(this, function(exports) {\n\nconst NEWER = Symbol('newer');\nconst OLDER = Symbol('older');\n\nclass LRUMap {\n constructor(limit, entries) {\n if (typeof limit !== 'number') {\n // called as (entries)\n entries = limit;\n limit = 0;\n }\n\n this.size = 0;\n this.limit = limit;\n this.oldest = this.newest = undefined;\n this._keymap = new Map();\n\n if (entries) {\n this.assign(entries);\n if (limit < 1) {\n this.limit = this.size;\n }\n }\n }\n\n _markEntryAsUsed(entry) {\n if (entry === this.newest) {\n // Already the most recenlty used entry, so no need to update the list\n return;\n }\n // HEAD--------------TAIL\n // <.older .newer>\n // <--- add direction --\n // A B C E\n if (entry[NEWER]) {\n if (entry === this.oldest) {\n this.oldest = entry[NEWER];\n }\n entry[NEWER][OLDER] = entry[OLDER]; // C <-- E.\n }\n if (entry[OLDER]) {\n entry[OLDER][NEWER] = entry[NEWER]; // C. --> E\n }\n entry[NEWER] = undefined; // D --x\n entry[OLDER] = this.newest; // D. --> E\n if (this.newest) {\n this.newest[NEWER] = entry; // E. <-- D\n }\n this.newest = entry;\n }\n\n assign(entries) {\n let entry, limit = this.limit || Number.MAX_VALUE;\n this._keymap.clear();\n let it = entries[Symbol.iterator]();\n for (let itv = it.next(); !itv.done; itv = it.next()) {\n let e = new Entry(itv.value[0], itv.value[1]);\n this._keymap.set(e.key, e);\n if (!entry) {\n this.oldest = e;\n } else {\n entry[NEWER] = e;\n e[OLDER] = entry;\n }\n entry = e;\n if (limit-- == 0) {\n throw new Error('overflow');\n }\n }\n this.newest = entry;\n this.size = this._keymap.size;\n }\n\n get(key) {\n // First, find our cache entry\n var entry = this._keymap.get(key);\n if (!entry) return; // Not cached. Sorry.\n // As was found in the cache, register it as being requested recently\n this._markEntryAsUsed(entry);\n return entry.value;\n }\n\n set(key, value) {\n var entry = this._keymap.get(key);\n\n if (entry) {\n // update existing\n entry.value = value;\n this._markEntryAsUsed(entry);\n return this;\n }\n\n // new entry\n this._keymap.set(key, (entry = new Entry(key, value)));\n\n if (this.newest) {\n // link previous tail to the new tail (entry)\n this.newest[NEWER] = entry;\n entry[OLDER] = this.newest;\n } else {\n // we're first in -- yay\n this.oldest = entry;\n }\n\n // add new entry to the end of the linked list -- it's now the freshest entry.\n this.newest = entry;\n ++this.size;\n if (this.size > this.limit) {\n // we hit the limit -- remove the head\n this.shift();\n }\n\n return this;\n }\n\n shift() {\n // todo: handle special case when limit == 1\n var entry = this.oldest;\n if (entry) {\n if (this.oldest[NEWER]) {\n // advance the list\n this.oldest = this.oldest[NEWER];\n this.oldest[OLDER] = undefined;\n } else {\n // the cache is exhausted\n this.oldest = undefined;\n this.newest = undefined;\n }\n // Remove last strong reference to and remove links from the purged\n // entry being returned:\n entry[NEWER] = entry[OLDER] = undefined;\n this._keymap.delete(entry.key);\n --this.size;\n return [entry.key, entry.value];\n }\n }\n\n // -------------------------------------------------------------------------------------\n // Following code (until end of class definition) is optional and can be removed without\n // breaking the core functionality.\n\n find(key) {\n let e = this._keymap.get(key);\n return e ? e.value : undefined;\n }\n\n has(key) {\n return this._keymap.has(key);\n }\n\n delete(key) {\n var entry = this._keymap.get(key);\n if (!entry) return;\n this._keymap.delete(entry.key);\n if (entry[NEWER] && entry[OLDER]) {\n // relink the older entry with the newer entry\n entry[OLDER][NEWER] = entry[NEWER];\n entry[NEWER][OLDER] = entry[OLDER];\n } else if (entry[NEWER]) {\n // remove the link to us\n entry[NEWER][OLDER] = undefined;\n // link the newer entry to head\n this.oldest = entry[NEWER];\n } else if (entry[OLDER]) {\n // remove the link to us\n entry[OLDER][NEWER] = undefined;\n // link the newer entry to head\n this.newest = entry[OLDER];\n } else {// if(entry[OLDER] === undefined && entry.newer === undefined) {\n this.oldest = this.newest = undefined;\n }\n\n this.size--;\n return entry.value;\n }\n\n clear() {\n // Not clearing links should be safe, as we don't expose live links to user\n this.oldest = this.newest = undefined;\n this.size = 0;\n this._keymap.clear();\n }\n\n keys() {\n return new KeyIterator(this.oldest);\n }\n\n values() {\n return new ValueIterator(this.oldest);\n }\n\n entries() {\n return this;\n }\n\n [Symbol.iterator]() {\n return new EntryIterator(this.oldest);\n }\n\n forEach(fun, thisObj) {\n if (typeof thisObj !== 'object') {\n thisObj = this;\n }\n let entry = this.oldest;\n while (entry) {\n fun.call(thisObj, entry.value, entry.key, this);\n entry = entry[NEWER];\n }\n }\n\n /** Returns a JSON (array) representation */\n toJSON() {\n var s = new Array(this.size), i = 0, entry = this.oldest;\n while (entry) {\n s[i++] = { key: entry.key, value: entry.value };\n entry = entry[NEWER];\n }\n return s;\n }\n\n /** Returns a String representation */\n toString() {\n var s = '', entry = this.oldest;\n while (entry) {\n s += String(entry.key)+':'+entry.value;\n entry = entry[NEWER];\n if (entry) {\n s += ' < ';\n }\n }\n return s;\n }\n}\n\nexports.LRUMap = LRUMap\n\nfunction Entry(key, value) {\n this.key = key;\n this.value = value;\n this[NEWER] = undefined;\n this[OLDER] = undefined;\n}\n\n\nfunction EntryIterator(oldestEntry) { this.entry = oldestEntry; }\nEntryIterator.prototype[Symbol.iterator] = function() { return this; }\nEntryIterator.prototype.next = function() {\n let ent = this.entry;\n if (ent) {\n this.entry = ent[NEWER];\n return { done: false, value: [ent.key, ent.value] };\n } else {\n return { done: true, value: undefined };\n }\n};\n\n\nfunction KeyIterator(oldestEntry) { this.entry = oldestEntry; }\nKeyIterator.prototype[Symbol.iterator] = function() { return this; }\nKeyIterator.prototype.next = function() {\n let ent = this.entry;\n if (ent) {\n this.entry = ent[NEWER];\n return { done: false, value: ent.key };\n } else {\n return { done: true, value: undefined };\n }\n};\n\nfunction ValueIterator(oldestEntry) { this.entry = oldestEntry; }\nValueIterator.prototype[Symbol.iterator] = function() { return this; }\nValueIterator.prototype.next = function() {\n let ent = this.entry;\n if (ent) {\n this.entry = ent[NEWER];\n return { done: false, value: ent.value };\n } else {\n return { done: true, value: undefined };\n }\n};\n\n});\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 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 r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\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 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 BN.prototype.inspect = 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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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.modn(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);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\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] & (1 << wbit)) >>> wbit;\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 var fftm = new FFTM();\n return fftm.mulp(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 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 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.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(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.modn = function modn (num) {\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 acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\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 return this.strip();\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 BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\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","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// This file has been generated from mustache.mjs\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Mustache = factory());\n}(this, (function () { 'use strict';\n\n /*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n /**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\n function primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n };\n\n /**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `tags` argument is given here it must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n */\n Writer.prototype.render = function render (template, view, partials, tags) {\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, tags);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, tags) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, tags);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate);\n };\n\n Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials, tags) {\n if (!partials) return;\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue);\n }\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return mustache.escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n var mustache = {\n name: 'mustache.js',\n version: '4.0.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n };\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view` and `partials` using the\n * default writer. If the optional `tags` argument is given here it must be an\n * array with two string values: the opening and closing tags used in the\n * template (e.g. [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n */\n mustache.render = function render (template, view, partials, tags) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, tags);\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbiSerializationType = exports.AbiFunctionModifier = exports.AbiFunctionKind = exports.SCHEMA_VERSION = void 0;\nexports.SCHEMA_VERSION = \"0.3.0\";\n/**\n * Function kind regulates whether this function's invocation requires a transaction (so-called\n * call functions) or not (view functions).\n */\nvar AbiFunctionKind;\n(function (AbiFunctionKind) {\n AbiFunctionKind[\"View\"] = \"view\";\n AbiFunctionKind[\"Call\"] = \"call\";\n})(AbiFunctionKind = exports.AbiFunctionKind || (exports.AbiFunctionKind = {}));\n/** Function can have multiple modifiers that can change its semantics. */\nvar AbiFunctionModifier;\n(function (AbiFunctionModifier) {\n /** Init functions can be used to initialize the state of the contract. */\n AbiFunctionModifier[\"Init\"] = \"init\";\n /**\n * Private functions can only be called from the contract containing them. Usually, when a\n * contract has to have a callback for a remote cross-contract call, this callback method\n * should only be called by the contract itself.\n */\n AbiFunctionModifier[\"Private\"] = \"private\";\n /** Payable functions can accept token transfer together with the function call.\n * This is done so that contracts can define a fee in tokens that needs to be payed when\n * they are used.\n */\n AbiFunctionModifier[\"Payable\"] = \"payable\";\n})(AbiFunctionModifier = exports.AbiFunctionModifier || (exports.AbiFunctionModifier = {}));\n/** Supported serialization formats. */\nvar AbiSerializationType;\n(function (AbiSerializationType) {\n AbiSerializationType[\"Json\"] = \"json\";\n AbiSerializationType[\"Borsh\"] = \"borsh\";\n})(AbiSerializationType = exports.AbiSerializationType || (exports.AbiSerializationType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return accounts_1.Account; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return accounts_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return accounts_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return accounts_1.UrlAccountCreator; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.AccountMultisig = exports.Account2FA = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return accounts_1.Account2FA; } });\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return accounts_1.AccountMultisig; } });\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return accounts_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return accounts_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return accounts_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return accounts_1.MULTISIG_CONFIRM_METHODS; } });\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return accounts_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return accounts_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\n/**\n * Connect to NEAR using the provided configuration.\n *\n * {@link ConnectConfig#networkId} and {@link ConnectConfig#nodeUrl} are required.\n *\n * To sign transactions you can also pass: {@link ConnectConfig#keyStore}\n *\n * Both are passed they are prioritize in that order.\n *\n * @see {@link ConnectConfig}\n * @example\n * ```js\n * async function initNear() {\n * const near = await connect({\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org'\n * })\n * }\n * ```\n *\n * @module browserConnect\n */\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nfunction connect(config) {\n return __awaiter(this, void 0, void 0, function* () {\n return new near_1.Near(config);\n });\n}\nexports.connect = connect;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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 __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keyStores = void 0;\n/** @hidden @module */\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\n/** @hidden @module */\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return accounts_1.Connection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return accounts_1.Contract; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\n/** @hidden @module */\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nvar keystores_browser_1 = require(\"@near-js/keystores-browser\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return keystores_browser_1.BrowserLocalStorageKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return keystores_1.InMemoryKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystores_1.KeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nvar keystores_1 = require(\"@near-js/keystores\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return keystores_1.MergeKeyStore; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return wallet_account_1.Near; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FailoverRpcProvider = void 0;\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"FailoverRpcProvider\", { enumerable: true, get: function () { return providers_1.FailoverRpcProvider; } });\n","\"use strict\";\n/** @hidden @module */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.FailoverRpcProvider = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\nconst failover_rpc_provider_1 = require(\"./failover-rpc-provider\");\nObject.defineProperty(exports, \"FailoverRpcProvider\", { enumerable: true, get: function () { return failover_rpc_provider_1.FailoverRpcProvider; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.TypedError = exports.ErrorContext = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return providers_1.JsonRpcProvider; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = exports.Provider = exports.getTransactionLastResult = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return utils_1.getTransactionLastResult; } });\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return providers_1.Provider; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return types_1.IdType; } });\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return types_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar signers_1 = require(\"@near-js/signers\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signers_1.InMemorySigner; } });\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signers_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transfer = exports.stake = exports.functionCallAccessKey = exports.functionCall = exports.fullAccessKey = exports.deployContract = exports.deleteKey = exports.deleteAccount = exports.createAccount = exports.addKey = exports.encodeTransaction = exports.encodeDelegateAction = exports.encodeSignedDelegate = exports.Transaction = exports.SignedTransaction = exports.Signature = exports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Transfer = exports.Stake = exports.FunctionCallPermission = exports.FunctionCall = exports.FullAccessPermission = exports.DeployContract = exports.DeleteKey = exports.DeleteAccount = exports.CreateAccount = exports.AddKey = exports.AccessKeyPermission = exports.AccessKey = exports.Action = exports.stringifyJsonOrBytes = void 0;\nvar transactions_1 = require(\"@near-js/transactions\");\nObject.defineProperty(exports, \"stringifyJsonOrBytes\", { enumerable: true, get: function () { return transactions_1.stringifyJsonOrBytes; } });\nObject.defineProperty(exports, \"Action\", { enumerable: true, get: function () { return transactions_1.Action; } });\nObject.defineProperty(exports, \"AccessKey\", { enumerable: true, get: function () { return transactions_1.AccessKey; } });\nObject.defineProperty(exports, \"AccessKeyPermission\", { enumerable: true, get: function () { return transactions_1.AccessKeyPermission; } });\nObject.defineProperty(exports, \"AddKey\", { enumerable: true, get: function () { return transactions_1.AddKey; } });\nObject.defineProperty(exports, \"CreateAccount\", { enumerable: true, get: function () { return transactions_1.CreateAccount; } });\nObject.defineProperty(exports, \"DeleteAccount\", { enumerable: true, get: function () { return transactions_1.DeleteAccount; } });\nObject.defineProperty(exports, \"DeleteKey\", { enumerable: true, get: function () { return transactions_1.DeleteKey; } });\nObject.defineProperty(exports, \"DeployContract\", { enumerable: true, get: function () { return transactions_1.DeployContract; } });\nObject.defineProperty(exports, \"FullAccessPermission\", { enumerable: true, get: function () { return transactions_1.FullAccessPermission; } });\nObject.defineProperty(exports, \"FunctionCall\", { enumerable: true, get: function () { return transactions_1.FunctionCall; } });\nObject.defineProperty(exports, \"FunctionCallPermission\", { enumerable: true, get: function () { return transactions_1.FunctionCallPermission; } });\nObject.defineProperty(exports, \"Stake\", { enumerable: true, get: function () { return transactions_1.Stake; } });\nObject.defineProperty(exports, \"Transfer\", { enumerable: true, get: function () { return transactions_1.Transfer; } });\nObject.defineProperty(exports, \"SCHEMA\", { enumerable: true, get: function () { return transactions_1.SCHEMA; } });\nObject.defineProperty(exports, \"createTransaction\", { enumerable: true, get: function () { return transactions_1.createTransaction; } });\nObject.defineProperty(exports, \"signTransaction\", { enumerable: true, get: function () { return transactions_1.signTransaction; } });\nObject.defineProperty(exports, \"Signature\", { enumerable: true, get: function () { return transactions_1.Signature; } });\nObject.defineProperty(exports, \"SignedTransaction\", { enumerable: true, get: function () { return transactions_1.SignedTransaction; } });\nObject.defineProperty(exports, \"Transaction\", { enumerable: true, get: function () { return transactions_1.Transaction; } });\nObject.defineProperty(exports, \"encodeSignedDelegate\", { enumerable: true, get: function () { return transactions_1.encodeSignedDelegate; } });\nObject.defineProperty(exports, \"encodeDelegateAction\", { enumerable: true, get: function () { return transactions_1.encodeDelegateAction; } });\nObject.defineProperty(exports, \"encodeTransaction\", { enumerable: true, get: function () { return transactions_1.encodeTransaction; } });\nconst transactions_2 = require(\"@near-js/transactions\");\nconst addKey = (publicKey, accessKey) => transactions_2.actionCreators.addKey(publicKey, accessKey);\nexports.addKey = addKey;\nconst createAccount = () => transactions_2.actionCreators.createAccount();\nexports.createAccount = createAccount;\nconst deleteAccount = (beneficiaryId) => transactions_2.actionCreators.deleteAccount(beneficiaryId);\nexports.deleteAccount = deleteAccount;\nconst deleteKey = (publicKey) => transactions_2.actionCreators.deleteKey(publicKey);\nexports.deleteKey = deleteKey;\nconst deployContract = (code) => transactions_2.actionCreators.deployContract(code);\nexports.deployContract = deployContract;\nconst fullAccessKey = () => transactions_2.actionCreators.fullAccessKey();\nexports.fullAccessKey = fullAccessKey;\nconst functionCall = (methodName, args, gas, deposit, stringify, jsContract) => transactions_2.actionCreators.functionCall(methodName, args, gas, deposit, stringify, jsContract);\nexports.functionCall = functionCall;\nconst functionCallAccessKey = (receiverId, methodNames, allowance) => transactions_2.actionCreators.functionCallAccessKey(receiverId, methodNames, allowance);\nexports.functionCallAccessKey = functionCallAccessKey;\nconst stake = (stake, publicKey) => transactions_2.actionCreators.stake(stake, publicKey);\nexports.stake = stake;\nconst transfer = (deposit) => transactions_2.actionCreators.transfer(deposit);\nexports.transfer = transfer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enum = exports.Assignable = void 0;\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"Assignable\", { enumerable: true, get: function () { return types_1.Assignable; } });\n/** @hidden @module */\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = exports.TypedError = exports.PositionalArgsError = exports.ErrorContext = exports.ArgumentTypeError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = void 0;\nvar accounts_1 = require(\"@near-js/accounts\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return accounts_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return accounts_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return accounts_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return accounts_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"@near-js/types\");\nObject.defineProperty(exports, \"ArgumentTypeError\", { enumerable: true, get: function () { return types_1.ArgumentTypeError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return types_1.ErrorContext; } });\nObject.defineProperty(exports, \"PositionalArgsError\", { enumerable: true, get: function () { return types_1.PositionalArgsError; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return types_1.TypedError; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return utils_1.logWarning; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION_EXP = exports.NEAR_NOMINATION = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"NEAR_NOMINATION\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION; } });\nObject.defineProperty(exports, \"NEAR_NOMINATION_EXP\", { enumerable: true, get: function () { return utils_1.NEAR_NOMINATION_EXP; } });\nObject.defineProperty(exports, \"formatNearAmount\", { enumerable: true, get: function () { return utils_1.formatNearAmount; } });\nObject.defineProperty(exports, \"parseNearAmount\", { enumerable: true, get: function () { return utils_1.parseNearAmount; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = exports.logWarning = exports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nconst logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyType = exports.KeyPairEd25519 = exports.KeyPair = void 0;\nvar crypto_1 = require(\"@near-js/crypto\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return crypto_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return crypto_1.KeyPairEd25519; } });\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return crypto_1.KeyType; } });\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return crypto_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return utils_1.Logger; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServerError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return utils_1.parseRpcError; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return utils_1.parseResultError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return utils_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return utils_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return utils_1.ServerError; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base_decode = exports.base_encode = exports.deserialize = exports.serialize = void 0;\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return utils_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return utils_1.baseDecode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nvar providers_1 = require(\"@near-js/providers\");\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return providers_1.fetchJson; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findSeatPrice = exports.diffEpochValidators = void 0;\nvar utils_1 = require(\"@near-js/utils\");\nObject.defineProperty(exports, \"diffEpochValidators\", { enumerable: true, get: function () { return utils_1.diffEpochValidators; } });\nObject.defineProperty(exports, \"findSeatPrice\", { enumerable: true, get: function () { return utils_1.findSeatPrice; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.ConnectedWalletAccount = void 0;\nvar wallet_account_1 = require(\"@near-js/wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst utils_2 = require(\"./utils\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey, stake, transfer, } = transactions_1.actionCreators;\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\n/**\n * This class provides common account related RPC calls including signing transactions with a {@link \"@near-js/crypto\".key_pair.KeyPair | KeyPair}.\n */\nclass Account {\n constructor(connection, accountId) {\n /** @hidden */\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n getConnection() {\n return this.connection;\n }\n /**\n * Returns basic NEAR account information via the `view_account` RPC query method\n * @see [https://docs.near.org/api/rpc/contracts#view-account](https://docs.near.org/api/rpc/contracts#view-account)\n */\n state() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.connection.provider.query({\n request_type: 'view_account',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n });\n }\n /**\n * Create a signed transaction which can be broadcast to the network\n * @param receiverId NEAR account receiving the transaction\n * @param actions list of actions to perform as part of the transaction\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n */\n signTransaction(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKeyInfo = yield this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new types_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair exists for this account`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = accessKey.nonce + BigInt(1);\n return yield (0, transactions_1.signTransaction)(receiverId, nonce, actions, (0, utils_1.baseDecode)(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n });\n }\n /**\n * Sign a transaction to perform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider | JsonRpcProvider }\n *\n * @param options The options for signing and sending the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be performed in the transaction.\n * @param options.returnError Whether to return an error if the transaction fails.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions, returnError }) {\n return __awaiter(this, void 0, void 0, function* () {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = yield (0, providers_1.exponentialBackoff)(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, () => __awaiter(this, void 0, void 0, function* () {\n [txHash, signedTx] = yield this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return yield this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n if (error.type === 'Expired') {\n utils_1.Logger.warn(`Retrying transaction ${receiverId}:${(0, utils_1.baseEncode)(txHash)} due to expired block hash`);\n return null;\n }\n error.context = new types_1.ErrorContext((0, utils_1.baseEncode)(txHash));\n throw error;\n }\n }));\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new types_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n (0, utils_1.printTxOutcomeLogsAndFailures)({ contractId: signedTx.transaction.receiverId, outcome: result });\n // Should be falsy if result.status.Failure is null\n if (!returnError && typeof result.status === 'object' && typeof result.status.Failure === 'object' && result.status.Failure !== null) {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new types_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw (0, utils_1.parseResultError)(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n });\n }\n /**\n * Finds the {@link AccessKeyView} associated with the accounts {@link PublicKey} stored in the {@link \"@near-js/keystores\".keystore.KeyStore | Keystore}.\n *\n * @todo Find matching access key based on transaction (i.e. receiverId and actions)\n *\n * @param receiverId currently unused (see todo)\n * @param actions currently unused (see todo)\n * @returns `{ publicKey PublicKey; accessKey: AccessKeyView }`\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n findAccessKey(receiverId, actions) {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = yield this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n throw new types_1.TypedError(`no matching key pair found in ${this.connection.signer}`, 'PublicKeyNotFound');\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const rawAccessKey = yield this.connection.provider.query({\n request_type: 'view_access_key',\n account_id: this.accountId,\n public_key: publicKey.toString(),\n finality: 'optimistic'\n });\n // store nonce as BigInt to preserve precision on big number\n const accessKey = Object.assign(Object.assign({}, rawAccessKey), { nonce: BigInt(rawAccessKey.nonce || 0) });\n // this function can be called multiple times and retrieve the same access key\n // this checks to see if the access key was already retrieved and cached while\n // the above network call was in flight. To keep nonce values in line, we return\n // the cached access key.\n if (this.accessKeyByPublicKeyCache[publicKey.toString()]) {\n return { publicKey, accessKey: this.accessKeyByPublicKeyCache[publicKey.toString()] };\n }\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n });\n }\n /**\n * Create a new account and deploy a contract to it\n *\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add to the created contract account\n * @param data The compiled contract code\n * @param amount of NEAR to transfer to the created contract account. Transfer enough to pay for storage https://docs.near.org/docs/concepts/storage-staking\n */\n createAndDeployContract(contractId, publicKey, data, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n yield this.signAndSendTransaction({\n receiverId: contractId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey), deployContract(data)]\n });\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n });\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n */\n sendMoney(receiverId, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId,\n actions: [transfer(amount)]\n });\n });\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n */\n createAccount(newAccountId, publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n const accessKey = fullAccessKey();\n return this.signAndSendTransaction({\n receiverId: newAccountId,\n actions: [createAccount(), transfer(amount), addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n */\n deleteAccount(beneficiaryId) {\n return __awaiter(this, void 0, void 0, function* () {\n utils_1.Logger.log('Deleting an account does not automatically transfer NFTs and FTs to the beneficiary address. Ensure to transfer assets before deleting.');\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteAccount(beneficiaryId)]\n });\n });\n }\n /**\n * @param data The compiled contract code\n */\n deployContract(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deployContract(data)]\n });\n });\n }\n /** @hidden */\n encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n }\n /**\n * Execute a function call.\n * @param options The options for the function call.\n * @param options.contractId The NEAR account ID of the smart contract.\n * @param options.methodName The name of the method to be called on the smart contract.\n * @param options.args The arguments to be passed to the method.\n * @param options.gas The maximum amount of gas to be used for the function call.\n * @param options.attachedDeposit The amount of NEAR tokens to be attached to the function call.\n * @param options.walletMeta Metadata for wallet integration.\n * @param options.walletCallbackUrl The callback URL for wallet integration.\n * @param options.stringify A function to convert input arguments into bytes array\n * @param options.jsContract Whether the contract is from JS SDK, automatically encodes args from JS SDK to binary.\n * @returns {Promise} A promise that resolves to the final execution outcome of the function call.\n */\n functionCall({ contractId, methodName, args = {}, gas = utils_1.DEFAULT_FUNCTION_CALL_GAS, attachedDeposit, walletMeta, walletCallbackUrl, stringify, jsContract }) {\n return __awaiter(this, void 0, void 0, function* () {\n this.validateArgs(args);\n let functionCallArgs;\n if (jsContract) {\n const encodedArgs = this.encodeJSContractArgs(contractId, methodName, JSON.stringify(args));\n functionCallArgs = ['call_js_contract', encodedArgs, gas, attachedDeposit, null, true];\n }\n else {\n const stringifyArg = stringify === undefined ? transactions_1.stringifyJsonOrBytes : stringify;\n functionCallArgs = [methodName, args, gas, attachedDeposit, stringifyArg, false];\n }\n return this.signAndSendTransaction({\n receiverId: jsContract ? this.connection.jsvmAccountId : contractId,\n // eslint-disable-next-line prefer-spread\n actions: [functionCall.apply(void 0, functionCallArgs)],\n walletMeta,\n walletCallbackUrl\n });\n });\n }\n /**\n * @see [https://docs.near.org/concepts/basics/accounts/access-keys](https://docs.near.org/concepts/basics/accounts/access-keys)\n * @todo expand this API to support more options.\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n */\n addKey(publicKey, contractId, methodNames, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = fullAccessKey();\n }\n else {\n accessKey = functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [addKey(crypto_1.PublicKey.from(publicKey), accessKey)]\n });\n });\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise}\n */\n deleteKey(publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [deleteKey(crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * @see [https://near-nodes.io/validator/staking-and-delegation](https://near-nodes.io/validator/staking-and-delegation)\n *\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n */\n stake(publicKey, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [stake(amount, crypto_1.PublicKey.from(publicKey))]\n });\n });\n }\n /**\n * Compose and sign a SignedDelegate action to be executed in a transaction on behalf of this Account instance\n *\n * @param options Options for the transaction.\n * @param options.actions Actions to be included in the meta transaction\n * @param options.blockHeightTtl Number of blocks past the current block height for which the SignedDelegate action may be included in a meta transaction\n * @param options.receiverId Receiver account of the meta transaction\n */\n signedDelegate({ actions, blockHeightTtl, receiverId, }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { provider, signer } = this.connection;\n const { header } = yield provider.block({ finality: 'final' });\n const { accessKey, publicKey } = yield this.findAccessKey(null, null);\n const delegateAction = (0, transactions_1.buildDelegateAction)({\n actions,\n maxBlockHeight: BigInt(header.height) + BigInt(blockHeightTtl),\n nonce: BigInt(accessKey.nonce) + BigInt(1),\n publicKey,\n receiverId,\n senderId: this.accountId,\n });\n const { signedDelegateAction } = yield (0, transactions_1.signDelegateAction)({\n delegateAction,\n signer: {\n sign: (message) => __awaiter(this, void 0, void 0, function* () {\n const { signature } = yield signer.signMessage(message, delegateAction.senderId, this.connection.networkId);\n return signature;\n }),\n }\n });\n return signedDelegateAction;\n });\n }\n /** @hidden */\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n }\n /**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\n viewFunction(options) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, utils_2.viewFunction)(this.connection, options);\n });\n }\n /**\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n viewState(prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, utils_2.viewState)(this.connection, this.accountId, prefix, blockQuery);\n });\n }\n /**\n * Get all access keys for the account\n * @see [https://docs.near.org/api/rpc/access-keys#view-access-key-list](https://docs.near.org/api/rpc/access-keys#view-access-key-list)\n */\n getAccessKeys() {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.connection.provider.query({\n request_type: 'view_access_key_list',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n // Replace raw nonce into a new BigInt\n return (_a = response === null || response === void 0 ? void 0 : response.keys) === null || _a === void 0 ? void 0 : _a.map((key) => (Object.assign(Object.assign({}, key), { access_key: Object.assign(Object.assign({}, key.access_key), { nonce: BigInt(key.access_key.nonce) }) })));\n });\n }\n /**\n * Returns a list of authorized apps\n * @todo update the response value to return all the different keys, not just app keys.\n */\n getAccountDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = yield this.getAccessKeys();\n const authorizedApps = accessKeys\n .filter(item => item.access_key.permission !== 'FullAccess')\n .map(item => {\n const perm = item.access_key.permission;\n return {\n contractId: perm.FunctionCall.receiver_id,\n amount: perm.FunctionCall.allowance,\n publicKey: item.public_key,\n };\n });\n return { authorizedApps };\n });\n }\n /**\n * Returns calculated account balance\n */\n getAccountBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const protocolConfig = yield this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = yield this.state();\n const costPerByte = BigInt(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = BigInt(state.storage_usage) * costPerByte;\n const staked = BigInt(state.locked);\n const totalBalance = BigInt(state.amount) + staked;\n const availableBalance = totalBalance - (staked > stateStaked ? staked : stateStaked);\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n });\n }\n /**\n * Returns the NEAR tokens balance and validators of a given account that is delegated to the staking pools that are part of the validators set in the current epoch.\n *\n * NOTE: If the tokens are delegated to a staking pool that is currently on pause or does not have enough tokens to participate in validation, they won't be accounted for.\n * @returns {Promise}\n */\n getActiveDelegatedStakeBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const epochId = block.header.epoch_id;\n const { current_validators, next_validators, current_proposals } = yield this.connection.provider.validators(epochId);\n const pools = new Set();\n [...current_validators, ...next_validators, ...current_proposals]\n .forEach((validator) => pools.add(validator.account_id));\n const uniquePools = [...pools];\n const promises = uniquePools\n .map((validator) => (this.viewFunction({\n contractId: validator,\n methodName: 'get_account_total_balance',\n args: { account_id: this.accountId },\n blockQuery: { blockId: blockHash }\n })));\n const results = yield Promise.allSettled(promises);\n const hasTimeoutError = results.some((result) => {\n if (result.status === 'rejected' && result.reason.type === 'TimeoutError') {\n return true;\n }\n return false;\n });\n // When RPC is down and return timeout error, throw error\n if (hasTimeoutError) {\n throw new Error('Failed to get delegated stake balance');\n }\n const summary = results.reduce((result, state, index) => {\n const validatorId = uniquePools[index];\n if (state.status === 'fulfilled') {\n const currentBN = BigInt(state.value);\n if (currentBN !== BigInt(0)) {\n return Object.assign(Object.assign({}, result), { stakedValidators: [...result.stakedValidators, { validatorId, amount: currentBN.toString() }], total: result.total + currentBN });\n }\n }\n if (state.status === 'rejected') {\n return Object.assign(Object.assign({}, result), { failedValidators: [...result.failedValidators, { validatorId, error: state.reason }] });\n }\n return result;\n }, { stakedValidators: [], failedValidators: [], total: BigInt(0) });\n return Object.assign(Object.assign({}, summary), { total: summary.total.toString() });\n });\n }\n}\nexports.Account = Account;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst types_1 = require(\"@near-js/types\");\nconst providers_1 = require(\"@near-js/providers\");\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_multisig_1 = require(\"./account_multisig\");\nconst constants_1 = require(\"./constants\");\nconst types_2 = require(\"./types\");\nconst { addKey, deleteKey, deployContract, fullAccessKey, functionCall, functionCallAccessKey } = transactions_1.actionCreators;\nclass Account2FA extends account_multisig_1.AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n }\n /**\n * Sign a transaction to preform a list of actions and broadcast it using the RPC API.\n * @see {@link \"@near-js/providers\".json-rpc-provider.JsonRpcProvider.sendTransaction | JsonRpcProvider.sendTransaction}\n *\n * @param options Options for the transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n yield _super.signAndSendTransaction.call(this, { receiverId, actions });\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n yield this.sendCode();\n const result = yield this.promptAndVerify();\n if (this.onConfirmResult) {\n yield this.onConfirmResult(result);\n }\n return result;\n });\n }\n // default helpers for CH deployments of multisig\n /**\n * Deploy a multisig contract with 2FA and handle the deployment process.\n * @param contractBytes - The bytecode of the multisig contract.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deployment.\n */\n deployMultisig(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransactionWithAccount: { get: () => super.signAndSendTransactionWithAccount }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const seedOrLedgerKey = (yield this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (yield this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => deleteKey(pk)),\n ...fak2lak.map((pk) => addKey(pk, functionCallAccessKey(accountId, constants_1.MULTISIG_CHANGE_METHODS, null))),\n addKey(confirmOnlyKey, functionCallAccessKey(accountId, constants_1.MULTISIG_CONFIRM_METHODS, null)),\n deployContract(contractBytes),\n ];\n const newFunctionCallActionBatch = actions.concat(functionCall('new', newArgs, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT));\n utils_1.Logger.log('deploying multisig contract for', accountId);\n const { stateStatus: multisigStateStatus } = yield this.checkMultisigCodeAndStateStatus(contractBytes);\n switch (multisigStateStatus) {\n case types_2.MultisigStateStatus.STATE_NOT_INITIALIZED:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, newFunctionCallActionBatch);\n case types_2.MultisigStateStatus.VALID_STATE:\n return yield _super.signAndSendTransactionWithAccount.call(this, accountId, actions);\n case types_2.MultisigStateStatus.INVALID_STATE:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState');\n default:\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n });\n }\n /**\n * Disable 2FA with the option to clean up contract state.\n * @param options Options for disabling 2FA.\n * @param options.contractBytes The bytecode of the contract to deploy.\n * @param options.cleanupContractBytes The bytecode of the cleanup contract (optional).\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disableWithFAK({ contractBytes, cleanupContractBytes }) {\n return __awaiter(this, void 0, void 0, function* () {\n let cleanupActions = [];\n if (cleanupContractBytes) {\n yield this.deleteAllRequests().catch(e => e);\n cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes);\n }\n const keyConversionActions = yield this.get2faDisableKeyConversionActions();\n const actions = [\n ...cleanupActions,\n ...keyConversionActions,\n deployContract(contractBytes)\n ];\n const accessKeyInfo = yield this.findAccessKey(this.accountId, actions);\n if (accessKeyInfo && accessKeyInfo.accessKey && accessKeyInfo.accessKey.permission !== 'FullAccess') {\n throw new types_1.TypedError('No full access key found in keystore. Unable to bypass multisig', 'NoFAKFound');\n }\n return this.signAndSendTransactionWithAccount(this.accountId, actions);\n });\n }\n /**\n * Retrieves cleanup actions for disabling 2FA.\n * @param cleanupContractBytes - The bytecode of the cleanup contract.\n * @returns {Promise} - A promise that resolves to an array of cleanup actions.\n */\n get2faDisableCleanupActions(cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentAccountState = yield this.viewState('').catch(error => {\n const cause = error.cause && error.cause.name;\n if (cause == 'NO_CONTRACT_CODE') {\n return [];\n }\n throw cause == 'TOO_LARGE_CONTRACT_STATE'\n ? new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account has existing state.`, 'ContractHasExistingState')\n : error;\n });\n const currentAccountStateKeys = currentAccountState.map(({ key }) => key.toString('base64'));\n return currentAccountState.length ? [\n deployContract(cleanupContractBytes),\n functionCall('clean', { keys: currentAccountStateKeys }, constants_1.MULTISIG_GAS, BigInt('0'))\n ] : [];\n });\n }\n /**\n * Retrieves key conversion actions for disabling 2FA.\n * @returns {Promise} - A promise that resolves to an array of key conversion actions.\n */\n get2faDisableKeyConversionActions() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const accessKeys = yield this.getAccessKeys();\n const lak2fak = accessKeys\n .filter(({ access_key }) => access_key.permission !== 'FullAccess')\n .filter(({ access_key }) => {\n const perm = access_key.permission.FunctionCall;\n return perm.receiver_id === accountId &&\n perm.method_names.length === 4 &&\n perm.method_names.includes('add_request_and_confirm');\n });\n const confirmOnlyKey = crypto_1.PublicKey.from((yield this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n return [\n deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => deleteKey(crypto_1.PublicKey.from(public_key))),\n ...lak2fak.map(({ public_key }) => addKey(crypto_1.PublicKey.from(public_key), fullAccessKey()))\n ];\n });\n }\n /**\n * This method converts LAKs back to FAKs, clears state and deploys an 'empty' contract (contractBytes param)\n * @param [contractBytes]{@link https://github.com/near/near-wallet/blob/master/packages/frontend/src/wasm/main.wasm?raw=true}\n * @param [cleanupContractBytes]{@link https://github.com/near/core-contracts/blob/master/state-manipulation/res/state_cleanup.wasm?raw=true}\n * @returns {Promise} A promise that resolves to the final execution outcome of the operation.\n */\n disable(contractBytes, cleanupContractBytes) {\n return __awaiter(this, void 0, void 0, function* () {\n const { stateStatus } = yield this.checkMultisigCodeAndStateStatus();\n if (stateStatus !== types_2.MultisigStateStatus.VALID_STATE && stateStatus !== types_2.MultisigStateStatus.STATE_NOT_INITIALIZED) {\n throw new types_1.TypedError(`Can not deploy a contract to account ${this.accountId} on network ${this.connection.networkId}, the account state could not be verified.`, 'ContractStateUnknown');\n }\n let deleteAllRequestsError;\n yield this.deleteAllRequests().catch(e => deleteAllRequestsError = e);\n const cleanupActions = yield this.get2faDisableCleanupActions(cleanupContractBytes).catch(e => {\n if (e.type === 'ContractHasExistingState') {\n throw deleteAllRequestsError || e;\n }\n throw e;\n });\n const actions = [\n ...cleanupActions,\n ...(yield this.get2faDisableKeyConversionActions()),\n deployContract(contractBytes),\n ];\n utils_1.Logger.log('disabling 2fa for', this.accountId);\n return yield this.signAndSendTransaction({\n receiverId: this.accountId,\n actions\n });\n });\n }\n /**\n * Default implementation for sending the 2FA code.\n * @returns {Promise} - A promise that resolves to the request ID.\n */\n sendCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const { requestId } = this.getRequest();\n const method = yield this.get2faMethod();\n yield this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n });\n }\n getCodeDefault() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n });\n }\n /**\n * Prompts the user to enter and verify the 2FA code.\n * @returns {Promise} - A promise that resolves to the verification result.\n */\n promptAndVerify() {\n return __awaiter(this, void 0, void 0, function* () {\n const method = yield this.get2faMethod();\n const securityCode = yield this.getCode(method);\n try {\n const result = yield this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n utils_1.Logger.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return yield this.promptAndVerify();\n }\n throw e;\n }\n });\n }\n /**\n * Verify the 2FA code using the default method.\n * @param securityCode - The security code to verify.\n * @returns {Promise} A promise that resolves to the verification result.\n */\n verifyCodeDefault(securityCode) {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return yield this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n });\n }\n /**\n * Retrieves recovery methods for the account.\n * @returns {Promise<{ accountId: string, data: any }>} - A promise that resolves to recovery methods data.\n */\n getRecoveryMethods() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n return {\n accountId,\n data: yield this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n });\n }\n /**\n * Gets the 2FA method (kind and detail).\n * @returns {Promise<{ kind: string, detail: string }>} A promise that resolves to the 2FA method.\n */\n get2faMethod() {\n return __awaiter(this, void 0, void 0, function* () {\n let { data } = yield this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n });\n }\n /**\n * Generates a signature for the latest finalized block.\n * @returns {Promise<{ blockNumber: string, blockNumberSignature: string }>} - A promise that resolves to the signature information.\n */\n signatureFor() {\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const block = yield this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = yield this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n });\n }\n /**\n * Sends a signed JSON request to a specified path.\n * @param path - The path for the request.\n * @param body - The request body.\n * @returns {Promise} - A promise that resolves to the response from the helper.\n */\n postSignedJson(path, body) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, providers_1.fetchJson)(this.helperUrl + path, JSON.stringify(Object.assign(Object.assign({}, body), (yield this.signatureFor()))));\n });\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => crypto_1.PublicKey.from(pk);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n });\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise}\n */\n createAccount(newAccountId, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n yield (0, providers_1.fetchJson)(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n });\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccountMultisig = void 0;\nconst transactions_1 = require(\"@near-js/transactions\");\nconst utils_1 = require(\"@near-js/utils\");\nconst account_1 = require(\"./account\");\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"./types\");\nconst { deployContract, functionCall } = transactions_1.actionCreators;\nvar MultisigCodeStatus;\n(function (MultisigCodeStatus) {\n MultisigCodeStatus[MultisigCodeStatus[\"INVALID_CODE\"] = 0] = \"INVALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"VALID_CODE\"] = 1] = \"VALID_CODE\";\n MultisigCodeStatus[MultisigCodeStatus[\"UNKNOWN_CODE\"] = 2] = \"UNKNOWN_CODE\";\n})(MultisigCodeStatus || (MultisigCodeStatus = {}));\n// in memory request cache for node w/o localStorage\nconst storageFallback = {\n [constants_1.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n /**\n * Constructs an instance of the `AccountMultisig` class.\n * @param connection The NEAR connection object.\n * @param accountId The NEAR account ID.\n * @param options Additional options for the multisig account.\n * @param options.storage Storage to store data related to multisig operations.\n * @param options.onAddRequestResult Callback function to handle the result of adding a request.\n */\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n }\n /**\n * Sign and send a transaction with the multisig account as the sender.\n * @param receiverId - The NEAR account ID of the transaction receiver.\n * @param actions - The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransactionWithAccount(receiverId, actions) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return _super.signAndSendTransaction.call(this, { receiverId, actions });\n });\n }\n /**\n * Sign and send a multisig transaction to add a request and confirm it.\n * @param options Options for the multisig transaction.\n * @param options.receiverId The NEAR account ID of the transaction receiver.\n * @param options.actions The list of actions to be included in the transaction.\n * @returns {Promise} A promise that resolves to the final execution outcome of the transaction.\n */\n signAndSendTransaction({ receiverId, actions }) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const { accountId } = this;\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n let result;\n try {\n result = yield _super.signAndSendTransaction.call(this, {\n receiverId: accountId,\n actions: [\n functionCall('add_request_and_confirm', args, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n catch (e) {\n if (e.toString().includes('Account has too many active requests. Confirm or delete some')) {\n yield this.deleteUnconfirmedRequests();\n return yield this.signAndSendTransaction({ receiverId, actions });\n }\n throw e;\n }\n // TODO: Are following even needed? Seems like it throws on error already\n if (!result.status) {\n throw new Error('Request failed');\n }\n const status = Object.assign({}, result.status);\n if (!status.SuccessValue || typeof status.SuccessValue !== 'string') {\n throw new Error('Request failed');\n }\n this.setRequest({\n accountId,\n actions,\n requestId: parseInt(Buffer.from(status.SuccessValue, 'base64').toString('ascii'), 10)\n });\n if (this.onAddRequestResult) {\n yield this.onAddRequestResult(result);\n }\n // NOTE there is no await on purpose to avoid blocking for 2fa\n this.deleteUnconfirmedRequests();\n return result;\n });\n }\n /**\n * This method submits a canary transaction that is expected to always fail in order to determine whether the contract currently has valid multisig state\n * and whether it is initialized. The canary transaction attempts to delete a request at index u32_max and will go through if a request exists at that index.\n * a u32_max + 1 and -1 value cannot be used for the canary due to expected u32 error thrown before deserialization attempt.\n * @param contractBytes The bytecode of the multisig contract.\n * @returns {Promise<{ codeStatus: MultisigCodeStatus; stateStatus: MultisigStateStatus }>} A promise that resolves to the status of the code and state.\n */\n checkMultisigCodeAndStateStatus(contractBytes) {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n const u32_max = 4294967295;\n const validCodeStatusIfNoDeploy = contractBytes ? MultisigCodeStatus.UNKNOWN_CODE : MultisigCodeStatus.VALID_CODE;\n try {\n if (contractBytes) {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId, actions: [\n deployContract(contractBytes),\n functionCall('delete_request', { request_id: u32_max }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)\n ]\n });\n }\n else {\n yield this.deleteRequest(u32_max);\n }\n return { codeStatus: MultisigCodeStatus.VALID_CODE, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n catch (e) {\n if (new RegExp(types_1.MultisigDeleteRequestRejectionError.CANNOT_DESERIALIZE_STATE).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.INVALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.MULTISIG_NOT_INITIALIZED).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.STATE_NOT_INITIALIZED };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.NO_SUCH_REQUEST).test(e && e.kind && e.kind.ExecutionError)) {\n return { codeStatus: validCodeStatusIfNoDeploy, stateStatus: types_1.MultisigStateStatus.VALID_STATE };\n }\n else if (new RegExp(types_1.MultisigDeleteRequestRejectionError.METHOD_NOT_FOUND).test(e && e.message)) {\n // not reachable if transaction included a deploy\n return { codeStatus: MultisigCodeStatus.INVALID_CODE, stateStatus: types_1.MultisigStateStatus.UNKNOWN_STATE };\n }\n throw e;\n }\n });\n }\n /**\n * Delete a multisig request by its ID.\n * @param request_id The ID of the multisig request to be deleted.\n * @returns {Promise} A promise that resolves to the final execution outcome of the deletion.\n */\n deleteRequest(request_id) {\n return super.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n /**\n * Delete all multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when all requests are deleted.\n */\n deleteAllRequests() {\n return __awaiter(this, void 0, void 0, function* () {\n const request_ids = yield this.getRequestIds();\n if (request_ids.length) {\n yield Promise.all(request_ids.map((id) => this.deleteRequest(id)));\n }\n });\n }\n /**\n * Delete unconfirmed multisig requests associated with the account.\n * @returns {Promise} A promise that resolves when unconfirmed requests are deleted.\n */\n deleteUnconfirmedRequests() {\n const _super = Object.create(null, {\n signAndSendTransaction: { get: () => super.signAndSendTransaction }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Delete in batch, don't delete unexpired\n // TODO: Delete in batch, don't delete unexpired (can reduce gas usage dramatically)\n const request_ids = yield this.getRequestIds();\n const { requestId } = this.getRequest();\n for (const requestIdToDelete of request_ids) {\n if (requestIdToDelete == requestId) {\n continue;\n }\n try {\n yield _super.signAndSendTransaction.call(this, {\n receiverId: this.accountId,\n actions: [functionCall('delete_request', { request_id: requestIdToDelete }, constants_1.MULTISIG_GAS, constants_1.MULTISIG_DEPOSIT)]\n });\n }\n catch (e) {\n utils_1.Logger.warn('Attempt to delete an earlier request before 15 minutes failed. Will try again.');\n }\n }\n });\n }\n // helpers\n getRequestIds() {\n return __awaiter(this, void 0, void 0, function* () {\n // TODO: Read requests from state to allow filtering by expiration time\n // TODO: https://github.com/near/core-contracts/blob/305d1db4f4f2cf5ce4c1ef3479f7544957381f11/multisig/src/lib.rs#L84\n return this.viewFunction({\n contractId: this.accountId,\n methodName: 'list_request_ids',\n });\n });\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(constants_1.MULTISIG_STORAGE_KEY) || '{}');\n }\n return storageFallback[constants_1.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(constants_1.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[constants_1.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: constants_1.MULTISIG_ALLOWANCE.toString(),\n method_names: constants_1.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst signers_1 = require(\"@near-js/signers\");\nconst providers_1 = require(\"@near-js/providers\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(Object.assign({}, config.args));\n case 'FailoverRpcProvider': {\n const providers = ((config === null || config === void 0 ? void 0 : config.args) || []).map((arg) => new providers_1.JsonRpcProvider(arg));\n return new providers_1.FailoverRpcProvider(providers);\n }\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signers_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer, jsvmAccountId) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n this.jsvmAccountId = jsvmAccountId;\n }\n getConnection() {\n return this;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer, config.jsvmAccountId);\n }\n}\nexports.Connection = Connection;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = BigInt((0, utils_1.parseNearAmount)('1'));\n// TODO: Different gas value for different requests (can reduce gas usage dramatically)\nexports.MULTISIG_GAS = BigInt('100000000000000');\nexports.MULTISIG_DEPOSIT = BigInt('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst types_1 = require(\"@near-js/types\");\nconst local_view_execution_1 = require(\"./local-view-execution\");\nconst is_my_json_valid_1 = __importDefault(require(\"is-my-json-valid\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst near_abi_1 = require(\"near-abi\");\nconst account_1 = require(\"./account\");\nconst errors_1 = require(\"./errors\");\nconst utils_2 = require(\"./utils\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n },\n }[name];\n}\nfunction validateArguments(args, abiFunction, abiRoot) {\n var _a;\n if (!isObject(args))\n return;\n if (abiFunction.params &&\n abiFunction.params.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.params.serialization_type);\n }\n if (abiFunction.result &&\n abiFunction.result.serialization_type !== near_abi_1.AbiSerializationType.Json) {\n throw new errors_1.UnsupportedSerializationError(abiFunction.name, abiFunction.result.serialization_type);\n }\n const params = ((_a = abiFunction.params) === null || _a === void 0 ? void 0 : _a.args) || [];\n for (const p of params) {\n const arg = args[p.name];\n const typeSchema = p.type_schema;\n typeSchema.definitions = abiRoot.body.root_schema.definitions;\n const validate = (0, is_my_json_valid_1.default)(typeSchema);\n const valid = validate(arg);\n if (!valid) {\n throw new errors_1.ArgumentSchemaError(p.name, validate.errors);\n }\n }\n // Check there are no extra unknown arguments passed\n for (const argName of Object.keys(args)) {\n const param = params.find((p) => p.name === argName);\n if (!param) {\n throw new errors_1.UnknownArgumentError(argName, params.map((p) => p.name));\n }\n }\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === \"[object Object]\";\n/**\n * Defines a smart contract on NEAR including the change (mutable) and view (non-mutable) methods\n *\n * @see [https://docs.near.org/tools/near-api-js/quick-reference#contract](https://docs.near.org/tools/near-api-js/quick-reference#contract)\n * @example\n * ```js\n * import { Contract } from 'near-api-js';\n *\n * async function contractExample() {\n * const methodOptions = {\n * viewMethods: ['getMessageByAccountId'],\n * changeMethods: ['addMessage']\n * };\n * const contract = new Contract(\n * wallet.account(),\n * 'contract-id.testnet',\n * methodOptions\n * );\n *\n * // use a contract view method\n * const messages = await contract.getMessages({\n * accountId: 'example-account.testnet'\n * });\n *\n * // use a contract change method\n * await contract.addMessage({\n * meta: 'some info',\n * callbackUrl: 'https://example.com/callback',\n * args: { text: 'my message' },\n * amount: 1\n * })\n * }\n * ```\n */\nclass Contract {\n /**\n * @param account NEAR account to sign change method transactions\n * @param contractId NEAR account id where the contract is deployed\n * @param options NEAR smart contract methods that your application will use. These will be available as `contract.methodName`\n */\n constructor(connection, contractId, options) {\n this.connection = connection.getConnection();\n if (connection instanceof account_1.Account) {\n const deprecate = (0, depd_1.default)(\"new Contract(account, contractId, options)\");\n deprecate(\"use `new Contract(connection, contractId, options)` instead\");\n this.account = connection;\n }\n this.contractId = contractId;\n this.lve = new local_view_execution_1.LocalViewExecution(connection);\n const { viewMethods = [], changeMethods = [], abi: abiRoot, useLocalViewExecution, } = options;\n let viewMethodsWithAbi = viewMethods.map((name) => ({\n name,\n abi: null,\n }));\n let changeMethodsWithAbi = changeMethods.map((name) => ({\n name,\n abi: null,\n }));\n if (abiRoot) {\n if (viewMethodsWithAbi.length > 0 ||\n changeMethodsWithAbi.length > 0) {\n throw new errors_1.ConflictingOptions();\n }\n viewMethodsWithAbi = abiRoot.body.functions\n .filter((m) => m.kind === near_abi_1.AbiFunctionKind.View)\n .map((m) => ({ name: m.name, abi: m }));\n changeMethodsWithAbi = abiRoot.body.functions\n .filter((methodAbi) => methodAbi.kind === near_abi_1.AbiFunctionKind.Call)\n .map((methodAbi) => ({ name: methodAbi.name, abi: methodAbi }));\n }\n viewMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (args = {}, options = {}, ...ignored) => __awaiter(this, void 0, void 0, function* () {\n if (ignored.length ||\n !(isObject(args) || isUint8Array(args)) ||\n !isObject(options)) {\n throw new types_1.PositionalArgsError();\n }\n if (abi) {\n validateArguments(args, abi, abiRoot);\n }\n if (useLocalViewExecution) {\n try {\n return yield this.lve.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n catch (error) {\n utils_1.Logger.warn(`Local view execution failed with: \"${error.message}\"`);\n utils_1.Logger.warn(`Fallback to normal RPC call`);\n }\n }\n if (this.account) {\n return this.account.viewFunction(Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n }\n return (0, utils_2.viewFunction)(this.connection, Object.assign({ contractId: this.contractId, methodName: name, args }, options));\n })),\n });\n });\n changeMethodsWithAbi.forEach(({ name, abi }) => {\n Object.defineProperty(this, name, {\n writable: false,\n enumerable: true,\n value: nameFunction(name, (...args) => __awaiter(this, void 0, void 0, function* () {\n if (args.length &&\n (args.length > 3 ||\n !(isObject(args[0]) || isUint8Array(args[0])))) {\n throw new types_1.PositionalArgsError();\n }\n if (args.length > 1 || !(args[0] && args[0].args)) {\n const deprecate = (0, depd_1.default)(\"contract.methodName(args, gas, amount)\");\n deprecate(\"use `contract.methodName({ signerAccount, args, gas?, amount?, callbackUrl?, meta? })` instead\");\n args[0] = {\n args: args[0],\n gas: args[1],\n amount: args[2],\n };\n }\n if (abi) {\n validateArguments(args[0].args, abi, abiRoot);\n }\n return this._changeMethod(Object.assign({ methodName: name }, args[0]));\n })),\n });\n });\n }\n _changeMethod({ signerAccount, args, methodName, gas, amount, meta, callbackUrl, }) {\n return __awaiter(this, void 0, void 0, function* () {\n validateBNLike({ gas, amount });\n const account = this.account || signerAccount;\n if (!account)\n throw new Error(`signerAccount must be specified`);\n const rawResult = yield account.functionCall({\n contractId: this.contractId,\n methodName,\n args,\n gas,\n attachedDeposit: amount,\n walletMeta: meta,\n walletCallbackUrl: callbackUrl,\n });\n return (0, utils_1.getTransactionLastResult)(rawResult);\n });\n }\n}\nexports.Contract = Contract;\n/**\n * Throws if an argument is not in BigInt format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = \"number, decimal string or BigInt\";\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && typeof argValue !== \"bigint\" && isNaN(argValue)) {\n throw new types_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConflictingOptions = exports.ArgumentSchemaError = exports.UnknownArgumentError = exports.UnsupportedSerializationError = void 0;\nclass UnsupportedSerializationError extends Error {\n constructor(methodName, serializationType) {\n super(`Contract method '${methodName}' is using an unsupported serialization type ${serializationType}`);\n }\n}\nexports.UnsupportedSerializationError = UnsupportedSerializationError;\nclass UnknownArgumentError extends Error {\n constructor(actualArgName, expectedArgNames) {\n super(`Unrecognized argument '${actualArgName}', expected '${JSON.stringify(expectedArgNames)}'`);\n }\n}\nexports.UnknownArgumentError = UnknownArgumentError;\nclass ArgumentSchemaError extends Error {\n constructor(argName, errors) {\n super(`Argument '${argName}' does not conform to the specified ABI schema: '${JSON.stringify(errors)}'`);\n }\n}\nexports.ArgumentSchemaError = ArgumentSchemaError;\nclass ConflictingOptions extends Error {\n constructor() {\n super('Conflicting contract method options have been passed. You can either specify ABI or a list of view/call methods.');\n }\n}\nexports.ConflictingOptions = ConflictingOptions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = exports.UnsupportedSerializationError = exports.UnknownArgumentError = exports.ConflictingOptions = exports.ArgumentSchemaError = exports.Contract = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = exports.Connection = exports.AccountMultisig = exports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = exports.Account2FA = exports.Account = void 0;\nvar account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nvar account_2fa_1 = require(\"./account_2fa\");\nObject.defineProperty(exports, \"Account2FA\", { enumerable: true, get: function () { return account_2fa_1.Account2FA; } });\nvar account_creator_1 = require(\"./account_creator\");\nObject.defineProperty(exports, \"AccountCreator\", { enumerable: true, get: function () { return account_creator_1.AccountCreator; } });\nObject.defineProperty(exports, \"LocalAccountCreator\", { enumerable: true, get: function () { return account_creator_1.LocalAccountCreator; } });\nObject.defineProperty(exports, \"UrlAccountCreator\", { enumerable: true, get: function () { return account_creator_1.UrlAccountCreator; } });\nvar account_multisig_1 = require(\"./account_multisig\");\nObject.defineProperty(exports, \"AccountMultisig\", { enumerable: true, get: function () { return account_multisig_1.AccountMultisig; } });\nvar connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"MULTISIG_STORAGE_KEY\", { enumerable: true, get: function () { return constants_1.MULTISIG_STORAGE_KEY; } });\nObject.defineProperty(exports, \"MULTISIG_ALLOWANCE\", { enumerable: true, get: function () { return constants_1.MULTISIG_ALLOWANCE; } });\nObject.defineProperty(exports, \"MULTISIG_GAS\", { enumerable: true, get: function () { return constants_1.MULTISIG_GAS; } });\nObject.defineProperty(exports, \"MULTISIG_DEPOSIT\", { enumerable: true, get: function () { return constants_1.MULTISIG_DEPOSIT; } });\nObject.defineProperty(exports, \"MULTISIG_CHANGE_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CHANGE_METHODS; } });\nObject.defineProperty(exports, \"MULTISIG_CONFIRM_METHODS\", { enumerable: true, get: function () { return constants_1.MULTISIG_CONFIRM_METHODS; } });\nvar contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ArgumentSchemaError\", { enumerable: true, get: function () { return errors_1.ArgumentSchemaError; } });\nObject.defineProperty(exports, \"ConflictingOptions\", { enumerable: true, get: function () { return errors_1.ConflictingOptions; } });\nObject.defineProperty(exports, \"UnknownArgumentError\", { enumerable: true, get: function () { return errors_1.UnknownArgumentError; } });\nObject.defineProperty(exports, \"UnsupportedSerializationError\", { enumerable: true, get: function () { return errors_1.UnsupportedSerializationError; } });\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"MultisigDeleteRequestRejectionError\", { enumerable: true, get: function () { return types_1.MultisigDeleteRequestRejectionError; } });\nObject.defineProperty(exports, \"MultisigStateStatus\", { enumerable: true, get: function () { return types_1.MultisigStateStatus; } });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalViewExecution = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst storage_1 = require(\"./storage\");\nconst runtime_1 = require(\"./runtime\");\nconst utils_2 = require(\"../utils\");\nclass LocalViewExecution {\n constructor(connection) {\n this.connection = connection.getConnection();\n this.storage = new storage_1.Storage();\n }\n fetchContractCode(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this.connection.provider.query(Object.assign({ request_type: 'view_code', account_id: contractId }, blockQuery));\n return result.code_base64;\n });\n }\n fetchContractState(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n return (0, utils_2.viewState)(this.connection, contractId, '', blockQuery);\n });\n }\n fetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const block = yield this.connection.provider.block(blockQuery);\n const blockHash = block.header.hash;\n const blockHeight = block.header.height;\n const blockTimestamp = block.header.timestamp;\n const contractCode = yield this.fetchContractCode(contractId, blockQuery);\n const contractState = yield this.fetchContractState(contractId, blockQuery);\n return {\n blockHash,\n blockHeight,\n blockTimestamp,\n contractCode,\n contractState,\n };\n });\n }\n loadOrFetch(contractId, blockQuery) {\n return __awaiter(this, void 0, void 0, function* () {\n const stored = this.storage.load(blockQuery);\n if (stored) {\n return stored;\n }\n const _a = yield this.fetch(contractId, blockQuery), { blockHash } = _a, fetched = __rest(_a, [\"blockHash\"]);\n this.storage.save(blockHash, fetched);\n return fetched;\n });\n }\n /**\n * Calls a view function on a contract, fetching the contract code and state if needed.\n * @param options Options for calling the view function.\n * @param options.contractId The contract account ID.\n * @param options.methodName The name of the view function to call.\n * @param options.args The arguments to pass to the view function.\n * @param options.blockQuery The block query options.\n * @returns {Promise} - A promise that resolves to the result of the view function.\n */\n viewFunction(_a) {\n var { contractId, methodName, args = {}, blockQuery = { finality: 'optimistic' } } = _a, ignored = __rest(_a, [\"contractId\", \"methodName\", \"args\", \"blockQuery\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const methodArgs = JSON.stringify(args);\n const { contractCode, contractState, blockHeight, blockTimestamp } = yield this.loadOrFetch(contractId, blockQuery);\n const runtime = new runtime_1.Runtime({ contractId, contractCode, contractState, blockHeight, blockTimestamp, methodArgs });\n const { result, logs } = yield runtime.execute(methodName);\n if (logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs });\n }\n return JSON.parse(Buffer.from(result).toString());\n });\n }\n}\nexports.LocalViewExecution = LocalViewExecution;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Runtime = void 0;\nconst crypto_1 = require(\"crypto\");\nconst notImplemented = (name) => () => {\n throw new Error('method not implemented: ' + name);\n};\nconst prohibitedInView = (name) => () => {\n throw new Error('method not available for view calls: ' + name);\n};\nclass Runtime {\n constructor(_a) {\n var { contractCode } = _a, context = __rest(_a, [\"contractCode\"]);\n this.context = context;\n this.wasm = this.prepareWASM(Buffer.from(contractCode, 'base64'));\n this.memory = new WebAssembly.Memory({ initial: 1024, maximum: 2048 });\n this.registers = {};\n this.logs = [];\n this.result = Buffer.from([]);\n }\n readUTF16CStr(ptr) {\n const arr = [];\n const mem = new Uint16Array(this.memory.buffer);\n let key = Number(ptr) / 2;\n while (mem[key] != 0) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(Uint16Array.from(arr).buffer).toString('ucs2');\n }\n readUTF8CStr(len, ptr) {\n const arr = [];\n const mem = new Uint8Array(this.memory.buffer);\n let key = Number(ptr);\n for (let i = 0; i < len && mem[key] != 0; i++) {\n arr.push(mem[key]);\n key++;\n }\n return Buffer.from(arr).toString('utf8');\n }\n storageRead(keyLen, keyPtr) {\n const storageKey = Buffer.from(new Uint8Array(this.memory.buffer, Number(keyPtr), Number(keyLen)));\n const stateVal = this.context.contractState.filter((obj) => Buffer.compare(obj.key, storageKey) === 0).map((obj) => obj.value);\n if (stateVal.length === 0)\n return null;\n return stateVal.length > 1 ? stateVal : stateVal[0];\n }\n prepareWASM(input) {\n const parts = [];\n const magic = input.subarray(0, 4);\n if (magic.toString('utf8') !== '\\0asm') {\n throw new Error('Invalid magic number');\n }\n const version = input.readUInt32LE(4);\n if (version != 1) {\n throw new Error('Invalid version: ' + version);\n }\n let offset = 8;\n parts.push(input.subarray(0, offset));\n function decodeLEB128() {\n let result = 0;\n let shift = 0;\n let byte;\n do {\n byte = input[offset++];\n result |= (byte & 0x7f) << shift;\n shift += 7;\n } while (byte & 0x80);\n return result;\n }\n function decodeLimits() {\n const flags = input[offset++];\n const hasMax = flags & 0x1;\n const initial = decodeLEB128();\n const max = hasMax ? decodeLEB128() : null;\n return { initial, max };\n }\n function decodeString() {\n const length = decodeLEB128();\n const result = input.subarray(offset, offset + length);\n offset += length;\n return result.toString('utf8');\n }\n function encodeLEB128(value) {\n const result = [];\n do {\n let byte = value & 0x7f;\n value >>= 7;\n if (value !== 0) {\n byte |= 0x80;\n }\n result.push(byte);\n } while (value !== 0);\n return Buffer.from(result);\n }\n function encodeString(value) {\n const result = Buffer.from(value, 'utf8');\n return Buffer.concat([encodeLEB128(result.length), result]);\n }\n do {\n const sectionStart = offset;\n const sectionId = input.readUInt8(offset);\n offset++;\n const sectionSize = decodeLEB128();\n const sectionEnd = offset + sectionSize;\n if (sectionId == 5) {\n // Memory section\n // Make sure it's empty and only imported memory is used\n parts.push(Buffer.from([5, 1, 0]));\n }\n else if (sectionId == 2) {\n // Import section\n const sectionParts = [];\n const numImports = decodeLEB128();\n for (let i = 0; i < numImports; i++) {\n const importStart = offset;\n decodeString();\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n let skipImport = false;\n switch (kind) {\n case 0:\n // Function import\n decodeLEB128(); // index\n break;\n case 1:\n // Table import\n offset++; // type\n decodeLimits();\n break;\n case 2:\n // Memory import\n decodeLimits();\n // NOTE: existing memory import is removed (so no need to add it to sectionParts)\n skipImport = true;\n break;\n case 3:\n // Global import\n offset++; // type\n offset++; // mutability\n break;\n default:\n throw new Error('Invalid import kind: ' + kind);\n }\n if (!skipImport) {\n sectionParts.push(input.subarray(importStart, offset));\n }\n }\n const importMemory = Buffer.concat([\n encodeString('env'),\n encodeString('memory'),\n Buffer.from([2]),\n Buffer.from([0]),\n encodeLEB128(1),\n ]);\n sectionParts.push(importMemory);\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([2]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else if (sectionId == 7) {\n // Export section\n const sectionParts = [];\n const numExports = decodeLEB128();\n for (let i = 0; i < numExports; i++) {\n const exportStart = offset;\n decodeString();\n const kind = input.readUInt8(offset);\n offset++;\n decodeLEB128();\n if (kind !== 2) {\n // Pass through all exports except memory\n sectionParts.push(input.subarray(exportStart, offset));\n }\n }\n const sectionData = Buffer.concat([\n encodeLEB128(sectionParts.length),\n ...sectionParts,\n ]);\n parts.push(Buffer.concat([\n Buffer.from([7]),\n encodeLEB128(sectionData.length),\n sectionData\n ]));\n }\n else {\n parts.push(input.subarray(sectionStart, sectionEnd));\n }\n offset = sectionEnd;\n } while (offset < input.length);\n return Buffer.concat(parts);\n }\n // Host functions\n getRegisterLength(registerId) {\n return BigInt(this.registers[registerId.toString()] ? this.registers[registerId.toString()].length : Number.MAX_SAFE_INTEGER);\n }\n readFromRegister(registerId, ptr) {\n const mem = new Uint8Array(this.memory.buffer);\n mem.set(this.registers[registerId.toString()] || Buffer.from([]), Number(ptr));\n }\n getCurrentAccountId(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.contractId);\n }\n inputMethodArgs(registerId) {\n this.registers[registerId.toString()] = Buffer.from(this.context.methodArgs);\n }\n getBlockHeight() {\n return BigInt(this.context.blockHeight);\n }\n getBlockTimestamp() {\n return BigInt(this.context.blockTimestamp);\n }\n sha256(valueLen, valuePtr, registerId) {\n const value = new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen));\n const hash = (0, crypto_1.createHash)('sha256');\n hash.update(value);\n this.registers[registerId.toString()] = hash.digest();\n }\n returnValue(valueLen, valuePtr) {\n this.result = Buffer.from(new Uint8Array(this.memory.buffer, Number(valuePtr), Number(valueLen)));\n }\n panic(message) {\n throw new Error('panic: ' + message);\n }\n abort(msg_ptr, filename_ptr, line, col) {\n const msg = this.readUTF16CStr(msg_ptr);\n const filename = this.readUTF16CStr(filename_ptr);\n const message = `${msg} ${filename}:${line}:${col}`;\n if (!msg || !filename) {\n throw new Error('abort: ' + 'String encoding is bad UTF-16 sequence.');\n }\n throw new Error('abort: ' + message);\n }\n appendToLog(len, ptr) {\n this.logs.push(this.readUTF8CStr(len, ptr));\n }\n readStorage(key_len, key_ptr, register_id) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n this.registers[register_id] = result;\n return BigInt(1);\n }\n hasStorageKey(key_len, key_ptr) {\n const result = this.storageRead(key_len, key_ptr);\n if (result == null) {\n return BigInt(0);\n }\n return BigInt(1);\n }\n getHostImports() {\n return {\n register_len: this.getRegisterLength.bind(this),\n read_register: this.readFromRegister.bind(this),\n current_account_id: this.getCurrentAccountId.bind(this),\n input: this.inputMethodArgs.bind(this),\n block_index: this.getBlockHeight.bind(this),\n block_timestamp: this.getBlockTimestamp.bind(this),\n sha256: this.sha256.bind(this),\n value_return: this.returnValue.bind(this),\n abort: this.abort.bind(this),\n log_utf8: this.appendToLog.bind(this),\n log_utf16: this.appendToLog.bind(this),\n storage_read: this.readStorage.bind(this),\n storage_has_key: this.hasStorageKey.bind(this),\n panic: () => this.panic('explicit guest panic'),\n panic_utf8: (len, ptr) => this.panic(this.readUTF8CStr(len, ptr)),\n // Not implemented\n epoch_height: notImplemented('epoch_height'),\n storage_usage: notImplemented('storage_usage'),\n account_balance: notImplemented('account_balance'),\n account_locked_balance: notImplemented('account_locked_balance'),\n random_seed: notImplemented('random_seed'),\n ripemd160: notImplemented('ripemd160'),\n keccak256: notImplemented('keccak256'),\n keccak512: notImplemented('keccak512'),\n ecrecover: notImplemented('ecrecover'),\n validator_stake: notImplemented('validator_stake'),\n validator_total_stake: notImplemented('validator_total_stake'),\n // Prohibited\n write_register: prohibitedInView('write_register'),\n signer_account_id: prohibitedInView('signer_account_id'),\n signer_account_pk: prohibitedInView('signer_account_pk'),\n predecessor_account_id: prohibitedInView('predecessor_account_id'),\n attached_deposit: prohibitedInView('attached_deposit'),\n prepaid_gas: prohibitedInView('prepaid_gas'),\n used_gas: prohibitedInView('used_gas'),\n promise_create: prohibitedInView('promise_create'),\n promise_then: prohibitedInView('promise_then'),\n promise_and: prohibitedInView('promise_and'),\n promise_batch_create: prohibitedInView('promise_batch_create'),\n promise_batch_then: prohibitedInView('promise_batch_then'),\n promise_batch_action_create_account: prohibitedInView('promise_batch_action_create_account'),\n promise_batch_action_deploy_contract: prohibitedInView('promise_batch_action_deploy_contract'),\n promise_batch_action_function_call: prohibitedInView('promise_batch_action_function_call'),\n promise_batch_action_function_call_weight: prohibitedInView('promise_batch_action_function_call_weight'),\n promise_batch_action_transfer: prohibitedInView('promise_batch_action_transfer'),\n promise_batch_action_stake: prohibitedInView('promise_batch_action_stake'),\n promise_batch_action_add_key_with_full_access: prohibitedInView('promise_batch_action_add_key_with_full_access'),\n promise_batch_action_add_key_with_function_call: prohibitedInView('promise_batch_action_add_key_with_function_call'),\n promise_batch_action_delete_key: prohibitedInView('promise_batch_action_delete_key'),\n promise_batch_action_delete_account: prohibitedInView('promise_batch_action_delete_account'),\n promise_results_count: prohibitedInView('promise_results_count'),\n promise_result: prohibitedInView('promise_result'),\n promise_return: prohibitedInView('promise_return'),\n storage_write: prohibitedInView('storage_write'),\n storage_remove: prohibitedInView('storage_remove'),\n };\n }\n execute(methodName) {\n return __awaiter(this, void 0, void 0, function* () {\n const module = yield WebAssembly.compile(this.wasm);\n const instance = yield WebAssembly.instantiate(module, { env: Object.assign(Object.assign({}, this.getHostImports()), { memory: this.memory }) });\n const callMethod = instance.exports[methodName];\n if (callMethod == undefined) {\n throw new Error(`Contract method '${methodName}' does not exists in contract ${this.context.contractId} for block id ${this.context.blockHeight}`);\n }\n callMethod();\n return {\n result: this.result,\n logs: this.logs\n };\n });\n }\n}\nexports.Runtime = Runtime;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = void 0;\nconst lru_map_1 = require(\"lru_map\");\nclass Storage {\n constructor(options = { max: Storage.MAX_ELEMENTS }) {\n this.cache = new lru_map_1.LRUMap(options.max);\n this.blockHeights = new Map();\n }\n load(blockRef) {\n const noBlockId = !('blockId' in blockRef);\n if (noBlockId)\n return undefined;\n let blockId = blockRef.blockId;\n // block hash is passed, so get its corresponding block height\n if (blockId.toString().length == 44) {\n blockId = this.blockHeights.get(blockId.toString());\n }\n // get cached values for the given block height\n return this.cache.get(blockId);\n }\n save(blockHash, { blockHeight, blockTimestamp, contractCode, contractState }) {\n this.blockHeights.set(blockHash, blockHeight);\n this.cache.set(blockHeight, { blockHeight, blockTimestamp, contractCode, contractState });\n }\n}\nexports.Storage = Storage;\nStorage.MAX_ELEMENTS = 100;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MultisigStateStatus = exports.MultisigDeleteRequestRejectionError = void 0;\nvar MultisigDeleteRequestRejectionError;\n(function (MultisigDeleteRequestRejectionError) {\n MultisigDeleteRequestRejectionError[\"CANNOT_DESERIALIZE_STATE\"] = \"Cannot deserialize the contract state\";\n MultisigDeleteRequestRejectionError[\"MULTISIG_NOT_INITIALIZED\"] = \"Smart contract panicked: Multisig contract should be initialized before usage\";\n MultisigDeleteRequestRejectionError[\"NO_SUCH_REQUEST\"] = \"Smart contract panicked: panicked at 'No such request: either wrong number or already confirmed'\";\n MultisigDeleteRequestRejectionError[\"REQUEST_COOLDOWN_ERROR\"] = \"Request cannot be deleted immediately after creation.\";\n MultisigDeleteRequestRejectionError[\"METHOD_NOT_FOUND\"] = \"Contract method is not found\";\n})(MultisigDeleteRequestRejectionError = exports.MultisigDeleteRequestRejectionError || (exports.MultisigDeleteRequestRejectionError = {}));\nvar MultisigStateStatus;\n(function (MultisigStateStatus) {\n MultisigStateStatus[MultisigStateStatus[\"INVALID_STATE\"] = 0] = \"INVALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"STATE_NOT_INITIALIZED\"] = 1] = \"STATE_NOT_INITIALIZED\";\n MultisigStateStatus[MultisigStateStatus[\"VALID_STATE\"] = 2] = \"VALID_STATE\";\n MultisigStateStatus[MultisigStateStatus[\"UNKNOWN_STATE\"] = 3] = \"UNKNOWN_STATE\";\n})(MultisigStateStatus = exports.MultisigStateStatus || (exports.MultisigStateStatus = {}));\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.viewFunction = exports.viewState = exports.encodeJSContractArgs = exports.validateArgs = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\nfunction bytesJsonStringify(input) {\n return Buffer.from(JSON.stringify(input));\n}\nfunction validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new types_1.PositionalArgsError();\n }\n}\nexports.validateArgs = validateArgs;\nfunction encodeJSContractArgs(contractId, method, args) {\n return Buffer.concat([Buffer.from(contractId), Buffer.from([0]), Buffer.from(method), Buffer.from([0]), Buffer.from(args)]);\n}\nexports.encodeJSContractArgs = encodeJSContractArgs;\n/**\n * Returns the state (key value pairs) of account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see [https://docs.near.org/api/rpc/contracts#view-contract-state](https://docs.near.org/api/rpc/contracts#view-contract-state)\n *\n * @param connection connection to query state from\n * @param accountId account whose state is viewed\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\nfunction viewState(connection, accountId, prefix, blockQuery = { finality: 'optimistic' }) {\n return __awaiter(this, void 0, void 0, function* () {\n const { values } = yield connection.provider.query(Object.assign(Object.assign({ request_type: 'view_state' }, blockQuery), { account_id: accountId, prefix_base64: Buffer.from(prefix).toString('base64') }));\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n });\n}\nexports.viewState = viewState;\n/**\n * Invoke a contract view function using the RPC API.\n * @see [https://docs.near.org/api/rpc/contracts#call-a-contract-function](https://docs.near.org/api/rpc/contracts#call-a-contract-function)\n *\n * @param options Function call options.\n * @param options.contractId NEAR account where the contract is deployed\n * @param options.methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param options.args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @param options.jsContract Is contract from JS SDK, automatically encodes args from JS SDK to binary.\n * @param options.blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n * @returns {Promise}\n */\nfunction viewFunction(connection, { contractId, methodName, args = {}, parse = parseJsonFromRawResponse, stringify = bytesJsonStringify, jsContract = false, blockQuery = { finality: 'optimistic' } }) {\n return __awaiter(this, void 0, void 0, function* () {\n let encodedArgs;\n validateArgs(args);\n if (jsContract) {\n encodedArgs = encodeJSContractArgs(contractId, methodName, Object.keys(args).length > 0 ? JSON.stringify(args) : '');\n }\n else {\n encodedArgs = stringify(args);\n }\n const result = yield connection.provider.query(Object.assign(Object.assign({ request_type: 'call_function' }, blockQuery), { account_id: jsContract ? connection.jsvmAccountId : contractId, method_name: jsContract ? 'view_js_contract' : methodName, args_base64: encodedArgs.toString('base64') }));\n if (result.logs) {\n (0, utils_1.printTxOutcomeLogs)({ contractId, logs: result.logs });\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n });\n}\nexports.viewFunction = viewFunction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeySize = exports.KeyType = void 0;\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nvar KeySize;\n(function (KeySize) {\n KeySize[KeySize[\"SECRET_KEY\"] = 32] = \"SECRET_KEY\";\n})(KeySize = exports.KeySize || (exports.KeySize = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = exports.KeyPairEd25519 = exports.KeyPair = exports.KeyType = void 0;\nvar constants_1 = require(\"./constants\");\nObject.defineProperty(exports, \"KeyType\", { enumerable: true, get: function () { return constants_1.KeyType; } });\nvar key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nvar key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_ed25519_1.KeyPairEd25519; } });\nvar public_key_1 = require(\"./public_key\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return public_key_1.PublicKey; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPair = void 0;\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst key_pair_ed25519_1 = require(\"./key_pair_ed25519\");\nclass KeyPair extends key_pair_base_1.KeyPairBase {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return key_pair_ed25519_1.KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n /**\n * Creates a key pair from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {KeyPair} The key pair created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new key_pair_ed25519_1.KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new key_pair_ed25519_1.KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n }\n}\nexports.KeyPair = KeyPair;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairBase = void 0;\nclass KeyPairBase {\n}\nexports.KeyPairBase = KeyPairBase;\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.KeyPairEd25519 = void 0;\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst randombytes_1 = __importDefault(require(\"randombytes\"));\nconst constants_1 = require(\"./constants\");\nconst key_pair_base_1 = require(\"./key_pair_base\");\nconst public_key_1 = require(\"./public_key\");\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends key_pair_base_1.KeyPairBase {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param extendedSecretKey\n */\n constructor(extendedSecretKey) {\n super();\n const decoded = (0, utils_1.baseDecode)(extendedSecretKey);\n const secretKey = new Uint8Array(decoded.slice(0, constants_1.KeySize.SECRET_KEY));\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n this.publicKey = new public_key_1.PublicKey({ keyType: constants_1.KeyType.ED25519, data: publicKey });\n this.secretKey = (0, utils_1.baseEncode)(secretKey);\n this.extendedSecretKey = extendedSecretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const secretKey = (0, randombytes_1.default)(constants_1.KeySize.SECRET_KEY);\n const publicKey = ed25519_1.ed25519.getPublicKey(new Uint8Array(secretKey));\n const extendedSecretKey = new Uint8Array([...secretKey, ...publicKey]);\n return new KeyPairEd25519((0, utils_1.baseEncode)(extendedSecretKey));\n }\n /**\n * Signs a message using the key pair's secret key.\n * @param message The message to be signed.\n * @returns {Signature} The signature object containing the signature and the public key.\n */\n sign(message) {\n const signature = ed25519_1.ed25519.sign(message, (0, utils_1.baseDecode)(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n /**\n * Verifies the signature of a message using the key pair's public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n return this.publicKey.verify(message, signature);\n }\n /**\n * Returns a string representation of the key pair in the format 'ed25519:[extendedSecretKey]'.\n * @returns {string} The string representation of the key pair.\n */\n toString() {\n return `ed25519:${this.extendedSecretKey}`;\n }\n /**\n * Retrieves the public key associated with the key pair.\n * @returns {PublicKey} The public key.\n */\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PublicKey = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst utils_1 = require(\"@near-js/utils\");\nconst ed25519_1 = require(\"@noble/curves/ed25519\");\nconst constants_1 = require(\"./constants\");\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case constants_1.KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return constants_1.KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends types_1.Assignable {\n /**\n * Creates a PublicKey instance from a string or an existing PublicKey instance.\n * @param value The string or PublicKey instance to create a PublicKey from.\n * @returns {PublicKey} The PublicKey instance.\n */\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n /**\n * Creates a PublicKey instance from an encoded key string.\n * @param encodedKey The encoded key string.\n * @returns {PublicKey} The PublicKey instance created from the encoded key string.\n */\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n let publicKey;\n let keyType = constants_1.KeyType.ED25519;\n if (parts.length === 1) {\n publicKey = parts[0];\n }\n else if (parts.length === 2) {\n publicKey = parts[1];\n keyType = str_to_key_type(parts[0]);\n }\n else {\n throw new Error('Invalid encoded key format, must be :');\n }\n const decodedPublicKey = (0, utils_1.baseDecode)(publicKey);\n if (decodedPublicKey.length !== constants_1.KeySize.SECRET_KEY) {\n throw new Error(`Invalid public key size (${decodedPublicKey.length}), must be ${constants_1.KeySize.SECRET_KEY}`);\n }\n return new PublicKey({ keyType, data: decodedPublicKey });\n }\n /**\n * Returns a string representation of the public key.\n * @returns {string} The string representation of the public key.\n */\n toString() {\n return `${key_type_to_str(this.keyType)}:${(0, utils_1.baseEncode)(this.data)}`;\n }\n /**\n * Verifies a message signature using the public key.\n * @param message The message to be verified.\n * @param signature The signature to be verified.\n * @returns {boolean} `true` if the signature is valid, otherwise `false`.\n */\n verify(message, signature) {\n switch (this.keyType) {\n case constants_1.KeyType.ED25519: return ed25519_1.ed25519.verify(signature, message, this.data);\n default: throw new Error(`Unknown key type ${this.keyType}`);\n }\n }\n}\nexports.PublicKey = PublicKey;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = void 0;\nconst crypto_1 = require(\"@near-js/crypto\");\nconst keystores_1 = require(\"@near-js/keystores\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst signer_1 = require(\"./signer\");\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends signer_1.Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static fromKeyPair(networkId, accountId, keyPair) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyStore = new keystores_1.InMemoryKeyStore();\n yield keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n });\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n createKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = crypto_1.KeyPair.fromRandom('ed25519');\n yield this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n });\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise} Returns the public key or null if not found\n */\n getPublicKey(accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n });\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise}\n */\n signMessage(message, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = yield this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n });\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = exports.InMemorySigner = void 0;\nvar in_memory_signer_1 = require(\"./in_memory_signer\");\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return in_memory_signer_1.InMemorySigner; } });\nvar signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signer = void 0;\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.actionCreators = exports.stringifyJsonOrBytes = void 0;\nconst actions_1 = require(\"./actions\");\n/**\n * Creates a full access key with full access permissions.\n * @returns A new full access key.\n */\nfunction fullAccessKey() {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n fullAccess: new actions_1.FullAccessPermission({}),\n }),\n });\n}\n/**\n * Creates an access key with function call permission for a specific receiver and method names.\n * @param receiverId The NEAR account ID of the function call receiver.\n * @param methodNames An array of method names allowed for function calls.\n * @param allowance An optional allowance (maximum amount) for the function call. Default: Unlimited.\n * @returns A new access key with function call permission.\n */\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new actions_1.AccessKey({\n nonce: 0,\n permission: new actions_1.AccessKeyPermission({\n functionCall: new actions_1.FunctionCallPermission({\n receiverId,\n allowance,\n methodNames,\n }),\n }),\n });\n}\n/**\n * Creates a new action for creating a new NEAR account.\n * @returns A new action for creating a new account.\n */\nfunction createAccount() {\n return new actions_1.Action({ createAccount: new actions_1.CreateAccount({}) });\n}\n/**\n * Creates a new action for deploying a contract with the provided code.\n * @param code The Uint8Array representing the code of the contract.\n * @returns A new action for deploying a contract.\n */\nfunction deployContract(code) {\n return new actions_1.Action({ deployContract: new actions_1.DeployContract({ code }) });\n}\n/**\n * Converts an input argument to a Buffer, handling cases for both JSON and Uint8Array.\n * @param args The input argument, either JSON object or Uint8Array.\n * @returns A Buffer representation of the input argument.\n */\nfunction stringifyJsonOrBytes(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n return isUint8Array ? args : Buffer.from(JSON.stringify(args));\n}\nexports.stringifyJsonOrBytes = stringifyJsonOrBytes;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @param stringify Convert input arguments into bytes array.\n * @param jsContract Is contract from JS SDK, skips stringification of arguments.\n */\nfunction functionCall(methodName, args, gas = BigInt(0), deposit = BigInt(0), stringify = stringifyJsonOrBytes, jsContract = false) {\n if (jsContract) {\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({ methodName, args, gas, deposit }),\n });\n }\n return new actions_1.Action({\n functionCall: new actions_1.FunctionCall({\n methodName,\n args: stringify(args),\n gas,\n deposit,\n }),\n });\n}\n/**\n * Creates a new action for transferring funds, optionally specifying a deposit amount.\n * @param deposit The amount to be deposited along with the transfer. Default: 0.\n * @returns A new action for transferring funds.\n */\nfunction transfer(deposit = BigInt(0)) {\n return new actions_1.Action({ transfer: new actions_1.Transfer({ deposit }) });\n}\n/**\n * Creates a new action for staking tokens, specifying the stake amount and public key.\n * @param stake The amount to be staked. Default: 0.\n * @param publicKey The public key associated with the staking action.\n * @returns A new action for staking tokens.\n */\nfunction stake(stake = BigInt(0), publicKey) {\n return new actions_1.Action({ stake: new actions_1.Stake({ stake, publicKey }) });\n}\n/**\n * Creates a new action for adding a public key with a specified access key.\n * @param publicKey The public key to be added.\n * @param accessKey The access key associated with the added public key.\n * @returns A new action for adding a public key.\n */\nfunction addKey(publicKey, accessKey) {\n return new actions_1.Action({ addKey: new actions_1.AddKey({ publicKey, accessKey }) });\n}\n/**\n * Creates a new action for deleting a public key.\n * @param publicKey The public key to be deleted.\n * @returns A new action for deleting a public key.\n */\nfunction deleteKey(publicKey) {\n return new actions_1.Action({ deleteKey: new actions_1.DeleteKey({ publicKey }) });\n}\n/**\n * Creates a new action for deleting an account with the specified beneficiary ID.\n * @param beneficiaryId The NEAR account ID of the beneficiary.\n * @returns A new action for deleting an account.\n */\nfunction deleteAccount(beneficiaryId) {\n return new actions_1.Action({ deleteAccount: new actions_1.DeleteAccount({ beneficiaryId }) });\n}\n/**\n * Creates a new action for a signed delegation, specifying the delegate action and signature.\n * @param delegateAction The delegate action to be performed.\n * @param signature The signature associated with the delegate action.\n * @returns A new action for a signed delegation.\n */\nfunction signedDelegate({ delegateAction, signature, }) {\n return new actions_1.Action({\n signedDelegate: new actions_1.SignedDelegate({ delegateAction, signature }),\n });\n}\nexports.actionCreators = {\n addKey,\n createAccount,\n deleteAccount,\n deleteKey,\n deployContract,\n fullAccessKey,\n functionCall,\n functionCallAccessKey,\n signedDelegate,\n stake,\n transfer,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.SignedDelegate = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nclass FunctionCallPermission extends types_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends types_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends types_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nclass IAction extends types_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nclass SignedDelegate extends IAction {\n}\nexports.SignedDelegate = SignedDelegate;\n/**\n * Contains a list of the valid transaction Actions available with this API\n * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec}\n */\nclass Action extends Enum {\n}\nexports.Action = Action;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransaction = void 0;\nconst schema_1 = require(\"./schema\");\n/**\n * Creates a new transaction object with the provided parameters.\n * @param signerId The NEAR account ID of the transaction signer.\n * @param publicKey The public key associated with the signer.\n * @param receiverId The NEAR account ID of the transaction receiver.\n * @param nonce The nonce value for the transaction, represented as a BN, string, or number.\n * @param actions An array of transaction actions to be performed.\n * @param blockHash The hash of the block where the transaction will be included.\n * @returns A new transaction object initialized with the provided parameters.\n */\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n const txNonce = typeof nonce === 'bigint' ? nonce : BigInt(nonce);\n return new schema_1.Transaction({\n signerId,\n publicKey,\n nonce: txNonce,\n receiverId,\n actions,\n blockHash,\n });\n}\nexports.createTransaction = createTransaction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildDelegateAction = exports.DelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst action_creators_1 = require(\"./action_creators\");\nconst { addKey, createAccount, deleteAccount, deleteKey, deployContract, functionCall, stake, transfer, } = action_creators_1.actionCreators;\nclass DelegateAction extends types_1.Assignable {\n}\nexports.DelegateAction = DelegateAction;\n/**\n * Compose a delegate action for inclusion with a meta transaction signed on the sender's behalf\n * @param actions The set of actions to be included in the meta transaction\n * @param maxBlockHeight The maximum block height for which this action can be executed as part of a transaction\n * @param nonce Current nonce on the access key used to sign the delegate action\n * @param publicKey Public key for the access key used to sign the delegate action\n * @param receiverId Account ID for the intended receiver of the meta transaction\n * @param senderId Account ID for the intended signer of the delegate action\n */\nfunction buildDelegateAction({ actions, maxBlockHeight, nonce, publicKey, receiverId, senderId, }) {\n return new DelegateAction({\n senderId,\n receiverId,\n actions: actions.map((a) => {\n // @ts-expect-error type workaround\n if (!a.type && !a.params) {\n return a;\n }\n // @ts-expect-error type workaround\n switch (a.type) {\n case 'AddKey': {\n // @ts-expect-error type workaround\n const { publicKey, accessKey } = a.params;\n return addKey(publicKey, accessKey);\n }\n case 'CreateAccount': {\n // @ts-expect-error type workaround\n return createAccount(a.params.createAccount);\n }\n case 'DeleteAccount': {\n // @ts-expect-error type workaround\n return deleteAccount(a.params.deleteAccount);\n }\n case 'DeleteKey': {\n // @ts-expect-error type workaround\n return deleteKey(a.params.publicKey);\n }\n case 'DeployContract': {\n // @ts-expect-error type workaround\n return deployContract(a.params.code);\n }\n case 'FunctionCall': {\n // @ts-expect-error type workaround\n const { methodName, args, gas, deposit } = a.params;\n return functionCall(methodName, args, gas, deposit);\n }\n case 'Stake': {\n // @ts-expect-error type workaround\n return stake(a.params.stake, a.params.publicKey);\n }\n case 'Transfer': {\n // @ts-expect-error type workaround\n const { deposit } = a.params;\n return transfer(deposit);\n }\n }\n throw new Error('Unrecognized action');\n }),\n nonce,\n maxBlockHeight,\n publicKey,\n });\n}\nexports.buildDelegateAction = buildDelegateAction;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./action_creators\"), exports);\n__exportStar(require(\"./actions\"), exports);\n__exportStar(require(\"./create_transaction\"), exports);\n__exportStar(require(\"./delegate\"), exports);\n__exportStar(require(\"./schema\"), exports);\n__exportStar(require(\"./sign\"), exports);\n__exportStar(require(\"./signature\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DelegateActionPrefix = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst ACTIONABLE_MESSAGE_BASE = Math.pow(2, 30);\n// const NON_ACTIONABLE_MESSAGE_BASE = Math.pow(2, 31);\n/** The set of NEPs for which an [NEP-461](https://github.com/near/NEPs/pull/461) prefix is required on the message prior to hashing **/\nconst NEP = {\n MetaTransactions: 366,\n};\n/** Base class for NEP message prefixes **/\nclass NEPPrefix extends types_1.Assignable {\n}\n/** Class for constructing prefixes on actionable (on-chain) messages **/\nclass ActionableMessagePrefix extends NEPPrefix {\n /** Given the NEP number, set the prefix using 2^30 as the offset **/\n constructor(prefix) {\n super({ prefix: ACTIONABLE_MESSAGE_BASE + prefix });\n }\n}\n/**\n * Class for constructing prefixes on non-actionable (off-chain) messages\n * @todo uncomment when off-chain messages are supported\n * **/\n// abstract class NonActionableMessagePrefix extends NEPPrefix {\n// /** Given the NEP number, set the prefix using 2^31 as the offset **/\n// protected constructor(prefix: number) {\n// super({ prefix: NON_ACTIONABLE_MESSAGE_BASE + prefix });\n// }\n// }\n/** Prefix for delegate actions whose signatures must always be distinguishable from valid transaction signatures **/\nclass DelegateActionPrefix extends ActionableMessagePrefix {\n constructor() { super(NEP.MetaTransactions); }\n}\nexports.DelegateActionPrefix = DelegateActionPrefix;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SCHEMA = exports.SignedTransaction = exports.Transaction = exports.decodeSignedTransaction = exports.decodeTransaction = exports.encodeTransaction = exports.encodeSignedDelegate = exports.encodeDelegateAction = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst borsh_1 = require(\"borsh\");\nconst prefix_1 = require(\"./prefix\");\n/**\n * Borsh-encode a delegate action for inclusion as an action within a meta transaction\n * NB per NEP-461 this requires a Borsh-serialized prefix specific to delegate actions, ensuring\n * signed delegate actions may never be identical to signed transactions with the same fields\n * @param delegateAction Delegate action to be signed by the meta transaction sender\n */\nfunction encodeDelegateAction(delegateAction) {\n return new Uint8Array([\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateActionPrefix, new prefix_1.DelegateActionPrefix()),\n ...(0, borsh_1.serialize)(exports.SCHEMA.DelegateAction, delegateAction),\n ]);\n}\nexports.encodeDelegateAction = encodeDelegateAction;\n/**\n * Borsh-encode a signed delegate for validation and execution by a relayer\n * @param signedDelegate Signed delegate to be executed in a meta transaction\n */\nfunction encodeSignedDelegate(signedDelegate) {\n return (0, borsh_1.serialize)(exports.SCHEMA.SignedDelegate, signedDelegate);\n}\nexports.encodeSignedDelegate = encodeSignedDelegate;\n/**\n* Borsh-encode a transaction or signed transaction into a serialized form.\n* @param transaction The transaction or signed transaction object to be encoded.\n* @returns A serialized representation of the input transaction.\n*/\nfunction encodeTransaction(transaction) {\n const schema = transaction instanceof SignedTransaction ? exports.SCHEMA.SignedTransaction : exports.SCHEMA.Transaction;\n return (0, borsh_1.serialize)(schema, transaction);\n}\nexports.encodeTransaction = encodeTransaction;\n/**\n * Borsh-decode a Transaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeTransaction(bytes) {\n return new Transaction((0, borsh_1.deserialize)(exports.SCHEMA.Transaction, bytes));\n}\nexports.decodeTransaction = decodeTransaction;\n/**\n * Borsh-decode a SignedTransaction instance from a buffer\n * @param bytes Uint8Array data to be decoded\n */\nfunction decodeSignedTransaction(bytes) {\n return new SignedTransaction((0, borsh_1.deserialize)(exports.SCHEMA.SignedTransaction, bytes));\n}\nexports.decodeSignedTransaction = decodeSignedTransaction;\nclass Transaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeTransaction(bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends types_1.Assignable {\n encode() {\n return encodeTransaction(this);\n }\n static decode(bytes) {\n return decodeSignedTransaction(bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\nexports.SCHEMA = new class BorshSchema {\n constructor() {\n this.Signature = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 64 } },\n }\n };\n this.PublicKey = {\n struct: {\n keyType: 'u8',\n data: { array: { type: 'u8', len: 32 } },\n }\n };\n this.FunctionCallPermission = {\n struct: {\n allowance: { option: 'u128' },\n receiverId: 'string',\n methodNames: { array: { type: 'string' } },\n }\n };\n this.FullAccessPermission = {\n struct: {}\n };\n this.AccessKeyPermission = {\n enum: [\n { struct: { functionCall: this.FunctionCallPermission } },\n { struct: { fullAccess: this.FullAccessPermission } },\n ]\n };\n this.AccessKey = {\n struct: {\n nonce: 'u64',\n permission: this.AccessKeyPermission,\n }\n };\n this.CreateAccount = {\n struct: {}\n };\n this.DeployContract = {\n struct: {\n code: { array: { type: 'u8' } },\n }\n };\n this.FunctionCall = {\n struct: {\n methodName: 'string',\n args: { array: { type: 'u8' } },\n gas: 'u64',\n deposit: 'u128',\n }\n };\n this.Transfer = {\n struct: {\n deposit: 'u128',\n }\n };\n this.Stake = {\n struct: {\n stake: 'u128',\n publicKey: this.PublicKey,\n }\n };\n this.AddKey = {\n struct: {\n publicKey: this.PublicKey,\n accessKey: this.AccessKey,\n }\n };\n this.DeleteKey = {\n struct: {\n publicKey: this.PublicKey,\n }\n };\n this.DeleteAccount = {\n struct: {\n beneficiaryId: 'string',\n }\n };\n this.DelegateActionPrefix = {\n struct: {\n prefix: 'u32',\n }\n };\n this.ClassicActions = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n ]\n };\n this.DelegateAction = {\n struct: {\n senderId: 'string',\n receiverId: 'string',\n actions: { array: { type: this.ClassicActions } },\n nonce: 'u64',\n maxBlockHeight: 'u64',\n publicKey: this.PublicKey,\n }\n };\n this.SignedDelegate = {\n struct: {\n delegateAction: this.DelegateAction,\n signature: this.Signature,\n }\n };\n this.Action = {\n enum: [\n { struct: { createAccount: this.CreateAccount } },\n { struct: { deployContract: this.DeployContract } },\n { struct: { functionCall: this.FunctionCall } },\n { struct: { transfer: this.Transfer } },\n { struct: { stake: this.Stake } },\n { struct: { addKey: this.AddKey } },\n { struct: { deleteKey: this.DeleteKey } },\n { struct: { deleteAccount: this.DeleteAccount } },\n { struct: { signedDelegate: this.SignedDelegate } },\n ]\n };\n this.Transaction = {\n struct: {\n signerId: 'string',\n publicKey: this.PublicKey,\n nonce: 'u64',\n receiverId: 'string',\n blockHash: { array: { type: 'u8', len: 32 } },\n actions: { array: { type: this.Action } },\n }\n };\n this.SignedTransaction = {\n struct: {\n transaction: this.Transaction,\n signature: this.Signature,\n }\n };\n }\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signDelegateAction = exports.signTransaction = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst actions_1 = require(\"./actions\");\nconst create_transaction_1 = require(\"./create_transaction\");\nconst schema_1 = require(\"./schema\");\nconst signature_1 = require(\"./signature\");\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nfunction signTransactionObject(transaction, signer, accountId, networkId) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeTransaction)(transaction);\n const hash = new Uint8Array((0, sha256_1.sha256)(message));\n const signature = yield signer.signMessage(message, accountId, networkId);\n const signedTx = new schema_1.SignedTransaction({\n transaction,\n signature: new signature_1.Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n });\n}\nfunction signTransaction(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (args[0].constructor === schema_1.Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = yield signer.getPublicKey(accountId, networkId);\n const transaction = (0, create_transaction_1.createTransaction)(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n });\n}\nexports.signTransaction = signTransaction;\n/**\n * Sign a delegate action\n * @options SignDelegate options\n * @param options.delegateAction Delegate action to be signed by the meta transaction sender\n * @param options.signer Signer instance for the meta transaction sender\n */\nfunction signDelegateAction({ delegateAction, signer }) {\n return __awaiter(this, void 0, void 0, function* () {\n const message = (0, schema_1.encodeDelegateAction)(delegateAction);\n const signature = yield signer.sign(message);\n const signedDelegateAction = new actions_1.SignedDelegate({\n delegateAction,\n signature: new signature_1.Signature({\n keyType: delegateAction.publicKey.keyType,\n data: signature,\n }),\n });\n return {\n hash: new Uint8Array((0, sha256_1.sha256)(message)),\n signedDelegateAction,\n };\n });\n}\nexports.signDelegateAction = signDelegateAction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Signature = void 0;\nconst types_1 = require(\"@near-js/types\");\nclass Signature extends types_1.Assignable {\n}\nexports.Signature = Signature;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = void 0;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./assignable\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./provider\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = exports.IdType = void 0;\nvar light_client_1 = require(\"./light_client\");\nObject.defineProperty(exports, \"IdType\", { enumerable: true, get: function () { return light_client_1.IdType; } });\nvar response_1 = require(\"./response\");\nObject.defineProperty(exports, \"ExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.ExecutionStatusBasic; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return response_1.FinalExecutionStatusBasic; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdType = void 0;\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = BigInt('30000000000000');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = void 0;\nconst logger_1 = require(\"../logger\");\n/** @deprecated */\nfunction logWarning(...args) {\n const [message, ...optionalParams] = args;\n logger_1.Logger.warn(message, ...optionalParams);\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseRpcError = exports.parseResultError = exports.getErrorTypeFromErrorMessage = exports.formatError = exports.ServerError = exports.logWarning = void 0;\nvar errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\nvar rpc_errors_1 = require(\"./rpc_errors\");\nObject.defineProperty(exports, \"ServerError\", { enumerable: true, get: function () { return rpc_errors_1.ServerError; } });\nObject.defineProperty(exports, \"formatError\", { enumerable: true, get: function () { return rpc_errors_1.formatError; } });\nObject.defineProperty(exports, \"getErrorTypeFromErrorMessage\", { enumerable: true, get: function () { return rpc_errors_1.getErrorTypeFromErrorMessage; } });\nObject.defineProperty(exports, \"parseResultError\", { enumerable: true, get: function () { return rpc_errors_1.parseResultError; } });\nObject.defineProperty(exports, \"parseRpcError\", { enumerable: true, get: function () { return rpc_errors_1.parseRpcError; } });\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.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst types_1 = require(\"@near-js/types\");\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst format_1 = require(\"../format\");\nconst error_messages_json_1 = __importDefault(require(\"./error_messages.json\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"./rpc_error_schema.json\"));\nconst mustacheHelpers = {\n formatNear: () => (n, render) => (0, format_1.formatNearAmount)(render(n))\n};\nclass ServerError extends types_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], Object.assign(Object.assign({}, errorData), mustacheHelpers));\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage, errorType) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /wasm execution failed with error: MethodResolveError\\(MethodNotFound/.test(errorMessage):\n return 'MethodNotFound';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return errorType;\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\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.baseDecode = exports.baseEncode = exports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bs58_1 = __importDefault(require(\"bs58\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = BigInt(10) ** BigInt(exports.NEAR_NOMINATION_EXP);\n// Pre-calculate offsets used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = BigInt(10);\nfor (let i = 0, offset = BigInt(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset * BN10) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n let balanceBN = BigInt(balance);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN += ROUNDING_OFFSETS[roundingExp];\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || \"0\";\n const fractionStr = balance\n .substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, \"0\")\n .substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split(\".\");\n const wholePart = split[0];\n const fracPart = split[1] || \"\";\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, \"0\"));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, \"\").trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, \"\");\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, \"\");\n if (value === \"\") {\n return \"0\";\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, \"$1,$2\");\n }\n return value;\n}\n/**\n * Encodes a Uint8Array or string into base58\n * @param value Uint8Array or string representing a borsh encoded object\n * @returns string base58 encoding of the value\n */\nfunction baseEncode(value) {\n if (typeof value === \"string\") {\n const bytes = [];\n for (let c = 0; c < value.length; c++) {\n bytes.push(value.charCodeAt(c));\n }\n value = new Uint8Array(bytes);\n }\n return bs58_1.default.encode(value);\n}\nexports.baseEncode = baseEncode;\n/**\n * Decodes a base58 string into a Uint8Array\n * @param value base58 encoded string\n * @returns Uint8Array representing the decoded value\n */\nfunction baseDecode(value) {\n return new Uint8Array(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./logging\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./validators\"), exports);\n__exportStar(require(\"./logger\"), exports);\n__exportStar(require(\"./utils\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogger = void 0;\nclass ConsoleLogger {\n constructor(logLevels) {\n this.logLevels = logLevels;\n this.isLevelEnabled = (level) => {\n return this.logLevels.includes(level);\n };\n }\n print(level, message, ...optionalParams) {\n switch (level) {\n case 'error':\n case 'fatal':\n return console.error(message, ...optionalParams);\n case 'warn':\n return console.warn(message, ...optionalParams);\n case 'log':\n return console.log(message, ...optionalParams);\n case 'debug':\n case 'verbose':\n return console.debug(message, ...optionalParams);\n }\n }\n verbose(message, ...optionalParams) {\n if (!this.isLevelEnabled('verbose'))\n return;\n this.print('verbose', message, ...optionalParams);\n }\n debug(message, ...optionalParams) {\n if (!this.isLevelEnabled('debug'))\n return;\n this.print('debug', message, ...optionalParams);\n }\n log(message, ...optionalParams) {\n if (!this.isLevelEnabled('log'))\n return;\n this.print('log', message, ...optionalParams);\n }\n warn(message, ...optionalParams) {\n if (!this.isLevelEnabled('warn'))\n return;\n this.print('warn', message, ...optionalParams);\n }\n error(message, ...optionalParams) {\n if (!this.isLevelEnabled('error'))\n return;\n this.print('error', message, ...optionalParams);\n }\n fatal(message, ...optionalParams) {\n if (!this.isLevelEnabled('fatal'))\n return;\n this.print('fatal', message, ...optionalParams);\n }\n}\nexports.ConsoleLogger = ConsoleLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nvar logger_1 = require(\"./logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\nconst console_logger_1 = require(\"./console.logger\");\nconst DEFAULT_LOG_LEVELS = [\n 'verbose',\n 'debug',\n 'log',\n 'warn',\n 'error',\n 'fatal',\n];\nconst DEFAULT_LOGGER = typeof process === 'object' && process.env.NEAR_NO_LOGS\n ? undefined\n : new console_logger_1.ConsoleLogger(DEFAULT_LOG_LEVELS);\n/**\n * Used to log the library messages\n */\nclass Logger {\n static error(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.error(message, ...optionalParams);\n }\n /**\n * Write a 'log' level log.\n */\n static log(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.log(message, ...optionalParams);\n }\n /**\n * Write a 'warn' level log.\n */\n static warn(message, ...optionalParams) {\n var _b;\n (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.warn(message, ...optionalParams);\n }\n /**\n * Write a 'debug' level log.\n */\n static debug(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.debug) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n /**\n * Write a 'verbose' level log.\n */\n static verbose(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.verbose) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n static fatal(message, ...optionalParams) {\n var _b, _c;\n (_c = (_b = this.instanceRef) === null || _b === void 0 ? void 0 : _b.fatal) === null || _c === void 0 ? void 0 : _c.call(_b, message, ...optionalParams);\n }\n}\nexports.Logger = Logger;\n_a = Logger;\nLogger.instanceRef = DEFAULT_LOGGER;\nLogger.overrideLogger = (logger) => {\n _a.instanceRef = logger;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.printTxOutcomeLogs = exports.printTxOutcomeLogsAndFailures = void 0;\nconst errors_1 = require(\"./errors\");\nconst logger_1 = require(\"./logger\");\n/**\n * Parse and print details from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.outcome the query execution response\n */\nfunction printTxOutcomeLogsAndFailures({ contractId, outcome, }) {\n const flatLogs = [outcome.transaction_outcome, ...outcome.receipts_outcome]\n .reduce((acc, it) => {\n const isFailure = typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object';\n if (it.outcome.logs.length || isFailure) {\n return acc.concat({\n receiptIds: it.outcome.receipt_ids,\n logs: it.outcome.logs,\n failure: typeof it.outcome.status === 'object' && it.outcome.status.Failure !== undefined\n ? (0, errors_1.parseRpcError)(it.outcome.status.Failure)\n : null\n });\n }\n else {\n return acc;\n }\n }, []);\n for (const result of flatLogs) {\n logger_1.Logger.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n printTxOutcomeLogs({\n contractId,\n logs: result.logs,\n prefix: '\\t',\n });\n if (result.failure) {\n logger_1.Logger.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n}\nexports.printTxOutcomeLogsAndFailures = printTxOutcomeLogsAndFailures;\n/**\n * Format and print log output from a query execution response\n * @param params\n * @param params.contractId ID of the account/contract which made the query\n * @param params.logs log output from a query execution response\n * @param params.prefix string to append to the beginning of each log\n */\nfunction printTxOutcomeLogs({ contractId, logs, prefix = '', }) {\n for (const log of logs) {\n logger_1.Logger.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n}\nexports.printTxOutcomeLogs = printTxOutcomeLogs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = void 0;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sortBigIntAsc = void 0;\nfunction sortBigIntAsc(a, b) {\n return (a < b ? -1 : a > b ? 1 : 0);\n}\nexports.sortBigIntAsc = sortBigIntAsc;\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.diffEpochValidators = exports.findSeatPrice = void 0;\nconst depd_1 = __importDefault(require(\"depd\"));\nconst utils_1 = require(\"./utils\");\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @param validators: current or next epoch validators.\n * @param maxNumberOfSeats: maximum number of seats in the network.\n * @param minimumStakeRatio: minimum stake ratio\n * @param protocolVersion: version of the protocol from genesis config\n */\nfunction findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio, protocolVersion) {\n if (protocolVersion && protocolVersion < 49) {\n return findSeatPriceForProtocolBefore49(validators, maxNumberOfSeats);\n }\n if (!minimumStakeRatio) {\n const deprecate = (0, depd_1.default)('findSeatPrice(validators, maxNumberOfSeats)');\n deprecate('`use `findSeatPrice(validators, maxNumberOfSeats, minimumStakeRatio)` instead');\n minimumStakeRatio = [1, 6250]; // hardcoded minimumStakeRation from 12/7/21\n }\n return findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio);\n}\nexports.findSeatPrice = findSeatPrice;\nfunction findSeatPriceForProtocolBefore49(validators, numSeats) {\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const num = BigInt(numSeats);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (stakesSum < num) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = BigInt(1), right = stakesSum + BigInt(1);\n while (left !== right - BigInt(1)) {\n const mid = (left + right) / BigInt(2);\n let found = false;\n let currentSum = BigInt(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum + (stakes[i] / mid);\n if (currentSum >= num) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\n// nearcore reference: https://github.com/near/nearcore/blob/5a8ae263ec07930cd34d0dcf5bcee250c67c02aa/chain/epoch_manager/src/validator_selection.rs#L308;L315\nfunction findSeatPriceForProtocolAfter49(validators, maxNumberOfSeats, minimumStakeRatio) {\n if (minimumStakeRatio.length != 2) {\n throw Error('minimumStakeRatio should have 2 elements');\n }\n const stakes = validators.map(v => BigInt(v.stake)).sort(utils_1.sortBigIntAsc);\n const stakesSum = stakes.reduce((a, b) => a + b);\n if (validators.length < maxNumberOfSeats) {\n return stakesSum * BigInt(minimumStakeRatio[0]) / BigInt(minimumStakeRatio[1]);\n }\n else {\n return stakes[0] + BigInt(1);\n }\n}\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @param currentValidators: list of current validators.\n * @param nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar global = getGlobal();\n\nmodule.exports = exports = global.fetch;\n\n// Needed for TypeScript and Webpack.\nif (global.fetch) {\n\texports.default = global.fetch.bind(global);\n}\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n'use strict';\n\nvar asn1 = require('asn1.js');\n\nexports.certificate = require('./certificate');\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict';\n\nvar asn = require('asn1.js');\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n","'use strict';\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = require('evp_bytestokey');\nvar ciphers = require('browserify-aes');\nvar Buffer = require('safe-buffer').Buffer;\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n","'use strict';\n\nvar asn1 = require('./asn1');\nvar aesid = require('./aesid.json');\nvar fixProc = require('./fixProc');\nvar ciphers = require('browserify-aes');\nvar compat = require('pbkdf2');\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\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 // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\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 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 r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\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 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 BN.prototype.inspect = 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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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.modn(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);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\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] & (1 << wbit)) >>> wbit;\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 var fftm = new FFTM();\n return fftm.mulp(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 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 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.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(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.modn = function modn (num) {\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 acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\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 return this.strip();\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 BN v4 instance\n r.strip();\n } else {\n // r is 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 return a.umod(this.m)._forceRed(this);\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","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n if (typeof (data) === 'string') {\n data = encodeUtf8(data)\n }\n this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\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//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictDepth: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n if (segment) {\n if (options.strictDepth === true) {\n throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n }\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\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\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n options = parseOptions(options)\n\n // Special cases where nothing can possibly be lower\n if (options.includePrerelease &&\n (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n return false\n }\n if (!options.includePrerelease &&\n (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n return false\n }\n\n // Same direction increasing (> or >=)\n if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n return true\n }\n // Same direction decreasing (< or <=)\n if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n return true\n }\n // same SemVer and both sides are inclusive (<= or >=)\n if (\n (this.semver.version === comp.semver.version) &&\n this.operator.includes('=') && comp.operator.includes('=')) {\n return true\n }\n // opposite directions less than\n if (cmp(this.semver, '<', comp.semver, options) &&\n this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n return true\n }\n // opposite directions greater than\n if (cmp(this.semver, '>', comp.semver, options) &&\n this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n return true\n }\n return false\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL]\n let next\n while ((next = coerceRtlRegex.exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n coerceRtlRegex.lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n const major = match[2]\n const minor = match[3] || '0'\n const patch = match[4] || '0'\n const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : ''\n const build = options.includePrerelease && match[6] ? `+${match[6]}` : ''\n\n return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // Otherwise it can be determined by checking the high version\n\n if (highVersion.patch) {\n // anything higher than a patch bump would result in the wrong version\n return 'patch'\n }\n\n if (highVersion.minor) {\n // anything higher than a minor bump would result in the wrong version\n return 'minor'\n }\n\n // bumping major/minor/patch all have same result\n return 'major'\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n if (typeof (options) === 'string') {\n identifierBase = identifier\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(\n version instanceof SemVer ? version.version : version,\n options\n ).inc(release, identifier, identifierBase).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n parse,\n valid,\n clean,\n inc,\n diff,\n major,\n minor,\n patch,\n prerelease,\n compare,\n rcompare,\n compareLoose,\n compareBuild,\n sort,\n rsort,\n gt,\n lt,\n eq,\n neq,\n gte,\n lte,\n cmp,\n coerce,\n Comparator,\n Range,\n satisfies,\n toComparators,\n maxSatisfying,\n minSatisfying,\n minVersion,\n validRange,\n outside,\n gtr,\n ltr,\n intersects,\n simplifyRange,\n subset,\n SemVer,\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n RELEASE_TYPES: constants.RELEASE_TYPES,\n compareIdentifiers: identifiers.compareIdentifiers,\n rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","class LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin))) {\n minver = setMin\n }\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","(function() {\n var crypt = require('crypt'),\n utf8 = require('charenc').utf8,\n bin = require('charenc').bin,\n\n // The core\n sha1 = function (message) {\n // Convert to byte array\n if (message.constructor == String)\n message = utf8.stringToBytes(message);\n else if (typeof Buffer !== 'undefined' && typeof Buffer.isBuffer == 'function' && Buffer.isBuffer(message))\n message = Array.prototype.slice.call(message, 0);\n else if (!Array.isArray(message))\n message = message.toString();\n\n // otherwise assume byte array\n\n var m = crypt.bytesToWords(message),\n l = message.length * 8,\n w = [],\n H0 = 1732584193,\n H1 = -271733879,\n H2 = -1732584194,\n H3 = 271733878,\n H4 = -1009589776;\n\n // Padding\n m[l >> 5] |= 0x80 << (24 - l % 32);\n m[((l + 64 >>> 9) << 4) + 15] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n var a = H0,\n b = H1,\n c = H2,\n d = H3,\n e = H4;\n\n for (var j = 0; j < 80; j++) {\n\n if (j < 16)\n w[j] = m[i + j];\n else {\n var n = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16];\n w[j] = (n << 1) | (n >>> 31);\n }\n\n var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + (\n j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 :\n j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 :\n j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 :\n (H1 ^ H2 ^ H3) - 899497514);\n\n H4 = H3;\n H3 = H2;\n H2 = (H1 << 30) | (H1 >>> 2);\n H1 = H0;\n H0 = t;\n }\n\n H0 += a;\n H1 += b;\n H2 += c;\n H3 += d;\n H4 += e;\n }\n\n return [H0, H1, H2, H3, H4];\n },\n\n // Public API\n api = function (message, options) {\n var digestbytes = crypt.wordsToBytes(sha1(message));\n return options && options.asBytes ? digestbytes :\n options && options.asString ? bin.bytesToString(digestbytes) :\n crypt.bytesToHex(digestbytes);\n };\n\n api._blocksize = 16;\n api._digestsize = 20;\n\n module.exports = api;\n})();\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap} */ var $wm;\n\t/** @type {Map} */ var $m;\n\t/** @type {import('.').RootNode} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\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\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n body = new Blob(self._body, {\n type: (headersObj['content-type'] || {}).value || ''\n });\n }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","// 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\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","/*!\n * toidentifier\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = toIdentifier\n\n/**\n * Trasform the given string into a JavaScript identifier\n *\n * @param {string} str\n * @returns {string}\n * @public\n */\n\nfunction toIdentifier (str) {\n return str\n .split(' ')\n .map(function (token) {\n return token.slice(0, 1).toUpperCase() + token.slice(1)\n })\n .join('')\n .replace(/[^ _0-9a-z]/gi, '')\n}\n","export function merge(...sets:Array):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\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\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = 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","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\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\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","import { KeyStore } from \"near-api-js/lib/key_stores\";\nimport { KeyPair } from \"near-api-js/lib/utils/key_pair\";\nimport { HereJsonStorage, StateStorage } from \"./JSONStorage\";\n\nexport interface HereAuthStorage extends KeyStore {\n setActiveAccount(network: string, id: string): Promise;\n getActiveAccount(network: string): Promise;\n}\n\nexport class HereKeyStore implements HereAuthStorage {\n constructor(private storage: HereJsonStorage = new StateStorage()) {}\n\n async setActiveAccount(network: string, id: string) {\n const state = await this.storage.getState(network);\n state.activeAccount = id;\n this.storage.setState(network, state);\n }\n\n async setKey(networkId: string, accountId: string, keyPair: KeyPair) {\n const state = await this.storage.getState(networkId);\n state.accounts[accountId] = keyPair.toString();\n this.storage.setState(networkId, state);\n }\n\n async getAccounts(network: string) {\n const state = await this.storage.getState(network);\n return Object.keys(state.accounts);\n }\n\n async getActiveAccount(network: string) {\n const state = await this.storage.getState(network);\n return state.activeAccount;\n }\n\n async getKey(networkId: string, accountId: string) {\n const state = await this.storage.getState(networkId);\n const privateKey = state.accounts[accountId];\n if (privateKey == null) throw Error(`For ${accountId} in ${networkId} network key not found`);\n const keyPair = KeyPair.fromString(privateKey);\n return keyPair;\n }\n\n async removeKey(networkId: string, accountId: string) {\n let state = await this.storage.getState(networkId);\n if (state.activeAccount === accountId) {\n state.activeAccount = null;\n }\n\n delete state.accounts[accountId];\n this.storage.setState(networkId, state);\n }\n\n async getNetworks() {\n let state = await this.storage.getFullState();\n return Object.keys(state.accounts);\n }\n\n async clear() {\n await this.storage.clear();\n }\n}\n","import { waitInjectedHereWallet } from \"./here-provider\";\n\nexport interface HereJsonStorage {\n setState(network: string, state: AuthState): Promise;\n getFullState(): Promise>;\n getState(network: string): Promise;\n clear(): Promise;\n}\n\nexport interface AuthState {\n activeAccount: string | null;\n accounts: Record;\n}\n\nexport class StateStorage implements HereJsonStorage {\n private readonly dataKey = `herewallet:keystore`;\n\n constructor() {\n waitInjectedHereWallet.then((injected) => {\n if (!injected) return;\n this.setState(injected.network, {\n accounts: { [injected.accountId]: injected.publicKey },\n activeAccount: injected.accountId,\n });\n });\n }\n\n async setState(network: string, state: AuthState) {\n await waitInjectedHereWallet;\n const data = await this.getFullState();\n data[network] = state;\n window.localStorage.setItem(this.dataKey, JSON.stringify(data));\n }\n\n async getFullState(): Promise> {\n await waitInjectedHereWallet;\n try {\n return JSON.parse(window.localStorage.getItem(this.dataKey)!) || {};\n } catch {\n return {};\n }\n }\n\n async getState(network: string): Promise {\n await waitInjectedHereWallet;\n const json = await this.getFullState();\n return json[network] || { activeAccount: null, accounts: {} };\n }\n\n async clear() {\n window.localStorage.removeItem(this.dataKey);\n }\n}\n","import { HereProviderRequest, HereProviderResult } from \"./provider\";\nimport { HereStrategy } from \"./types\";\n\nconst createIframe = (widget: string) => {\n const connector = document.createElement(\"iframe\");\n connector.src = widget;\n connector.allow = \"usb\";\n connector.style.border = \"none\";\n connector.style.zIndex = \"10000\";\n connector.style.position = \"fixed\";\n connector.style.display = \"none\";\n connector.style.top = \"0\";\n connector.style.left = \"0\";\n connector.style.width = \"100%\";\n connector.style.height = \"100%\";\n document.body.appendChild(connector);\n return connector;\n};\n\nexport const defaultUrl = \"https://my.herewallet.app/connector/index.html\";\n\nexport class WidgetStrategy implements HereStrategy {\n private static connector?: HTMLIFrameElement;\n private static isLoaded = false;\n\n private messageHandler?: (event: MessageEvent) => void;\n readonly options: { lazy: boolean; widget: string };\n\n constructor(options: string | { lazy?: boolean; widget?: string } = { widget: defaultUrl, lazy: false }) {\n this.options = {\n lazy: typeof options === \"object\" ? options.lazy || false : false,\n widget: typeof options === \"string\" ? options : options.widget || defaultUrl,\n };\n\n if (!this.options.lazy) {\n this.initIframe();\n }\n }\n\n initIframe() {\n if (WidgetStrategy.connector == null) {\n WidgetStrategy.connector = createIframe(this.options.widget);\n WidgetStrategy.connector.addEventListener(\"load\", () => {\n WidgetStrategy.isLoaded = true;\n });\n }\n\n return WidgetStrategy.connector;\n }\n\n onRequested(id: string, request: HereProviderRequest, reject: (p?: string) => void) {\n const iframe = this.initIframe();\n iframe.style.display = \"block\";\n\n const loadHandler = () => {\n WidgetStrategy.connector?.removeEventListener(\"load\", loadHandler);\n WidgetStrategy.connector?.contentWindow?.postMessage(\n JSON.stringify({ type: \"request\", payload: { id, request } }),\n new URL(this.options.widget).origin\n );\n };\n\n if (WidgetStrategy.isLoaded) loadHandler();\n else iframe.addEventListener(\"load\", loadHandler);\n\n this.messageHandler = (event: MessageEvent) => {\n try {\n if (event.origin !== new URL(this.options.widget).origin) return;\n if (JSON.parse(event.data).type === \"reject\") reject();\n } catch {}\n };\n\n window.addEventListener(\"message\", this.messageHandler);\n }\n\n postMessage(data: object) {\n const iframe = this.initIframe();\n const args = JSON.stringify(data);\n const origin = new URL(this.options.widget).origin;\n iframe.contentWindow?.postMessage(args, origin);\n }\n\n onApproving() {\n this.postMessage({ type: \"approving\" });\n }\n\n onSuccess(request: HereProviderResult) {\n console.log(request);\n this.postMessage({ type: \"result\", payload: { request } });\n this.close();\n }\n\n onFailed(request: HereProviderResult) {\n this.postMessage({ type: \"result\", payload: { request } });\n this.close();\n }\n\n close() {\n if (this.messageHandler) {\n window.removeEventListener(\"message\", this.messageHandler);\n this.messageHandler = undefined;\n }\n\n if (WidgetStrategy.connector) {\n WidgetStrategy.connector.style.display = \"none\";\n }\n }\n}\n","import { HereProviderRequest } from \"./provider\";\nimport { HereStrategy } from \"./types\";\n\nexport class WindowStrategy implements HereStrategy {\n constructor(readonly endpoint = \"https://my.herewallet.app\") {}\n\n signWindow: Window | null = null;\n unloadHandler?: () => void;\n timerHandler?: NodeJS.Timeout;\n\n onInitialized() {\n if (this.signWindow) return;\n\n const left = window.innerWidth / 2 - 420 / 2;\n const top = window.innerHeight / 2 - 700 / 2;\n this.signWindow = window.open(\n `${this.endpoint}/loading`,\n \"_blank\",\n `popup=1,width=420,height=700,top=${top},left=${left}`\n );\n }\n\n onRequested(id: string, request: HereProviderRequest, reject: (p?: string) => void) {\n if (this.signWindow == null) return;\n\n this.unloadHandler = () => this.signWindow?.close();\n window.addEventListener(\"beforeunload\", this.unloadHandler);\n\n this.signWindow.location = `${this.endpoint}/request/${id}`;\n this.timerHandler = setInterval(() => {\n if (this.signWindow?.closed) reject(\"CLOSED\");\n }, 1000);\n }\n\n close() {\n clearInterval(this.timerHandler);\n this.signWindow?.close();\n this.signWindow = null;\n\n if (this.unloadHandler) {\n window.removeEventListener(\"beforeunload\", this.unloadHandler);\n }\n }\n\n onFailed = () => this.close();\n onSuccess = () => this.close();\n}\n","import { BN } from \"bn.js\";\nimport { transactions, utils } from \"near-api-js\";\nimport { Action, AddKeyPermission } from \"./types\";\n\nconst getAccessKey = (permission: AddKeyPermission) => {\n if (permission === \"FullAccess\") {\n return transactions.fullAccessKey();\n }\n\n const { receiverId, methodNames = [] } = permission;\n const allowance = permission.allowance ? new BN(permission.allowance) : undefined;\n return transactions.functionCallAccessKey(receiverId, methodNames, allowance);\n};\n\nexport const parseArgs = (data: Object | string) => {\n if (typeof data === \"string\") return Buffer.from(data, \"base64\");\n return data;\n};\n\nexport const createAction = (action: Action) => {\n switch (action.type) {\n case \"CreateAccount\":\n return transactions.createAccount();\n\n case \"DeployContract\": {\n const { code } = action.params;\n return transactions.deployContract(code);\n }\n\n case \"FunctionCall\": {\n const { methodName, args, gas, deposit } = action.params;\n return transactions.functionCall(methodName, parseArgs(args), new BN(gas), new BN(deposit));\n }\n\n case \"Transfer\": {\n const { deposit } = action.params;\n return transactions.transfer(new BN(deposit));\n }\n\n case \"Stake\": {\n const { stake, publicKey } = action.params;\n return transactions.stake(new BN(stake), utils.PublicKey.from(publicKey));\n }\n\n case \"AddKey\": {\n const { publicKey, accessKey } = action.params;\n return transactions.addKey(\n utils.PublicKey.from(publicKey), // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine?\n getAccessKey(accessKey.permission)\n );\n }\n\n case \"DeleteKey\": {\n const { publicKey } = action.params;\n return transactions.deleteKey(utils.PublicKey.from(publicKey));\n }\n\n case \"DeleteAccount\": {\n const { beneficiaryId } = action.params;\n return transactions.deleteAccount(beneficiaryId);\n }\n\n default:\n throw new Error(\"Invalid action type\");\n }\n};\n","import uuid4 from \"uuid4\";\nimport { KeyPair } from \"near-api-js\";\n\nimport { isMobile } from \"../utils\";\nimport { HereProvider, HereProviderError, HereProviderResult, HereProviderStatus } from \"../provider\";\nimport { createRequest, getResponse, deleteRequest, proxyApi, getRequest } from \"./methods\";\n\nexport { createRequest, getResponse, deleteRequest, proxyApi, getRequest };\n\ntype InjectedState = { accountId: string; network: string; publicKey: string };\nexport const waitInjectedHereWallet = new Promise((resolve) => {\n if (typeof window === \"undefined\") return resolve(null);\n if (window.self === window.top) return resolve(null);\n\n const handler = (e: any) => {\n if (e.data.type !== \"here-wallet-injected\") return;\n window.parent.postMessage(\"here-sdk-init\", \"*\");\n window.removeEventListener(\"message\", handler);\n resolve({ accountId: e.data.accountId, publicKey: e.data.publicKey, network: e.data.network || \"mainnet\" });\n };\n\n window.addEventListener(\"message\", handler);\n setTimeout(() => resolve(null), 2000);\n});\n\nexport const proxyProvider: HereProvider = async (conf) => {\n const isInjected = await waitInjectedHereWallet;\n\n if (isInjected && typeof window !== \"undefined\") {\n return new Promise((resolve) => {\n const id = uuid4();\n const handler = (e: any) => {\n if (e.data.id !== id) return;\n if (e.data.status === HereProviderStatus.SUCCESS || e.data.status === HereProviderStatus.FAILED) {\n window.removeEventListener(\"message\", handler);\n return resolve(e.data);\n }\n };\n\n window.parent.postMessage({ $here: true, ...conf.request, id }, \"*\");\n window.addEventListener(\"message\", handler);\n });\n }\n\n let { strategy, request, disableCleanupRequest, id, signal, ...delegate } = conf;\n if (id != null) request = await getRequest(id, signal);\n else id = await createRequest(request, signal);\n\n return new Promise((resolve, reject: (e: HereProviderError) => void) => {\n const socketApi = proxyApi.replace(\"https\", \"wss\");\n let fallbackHttpTimer: NodeJS.Timeout | number | null = null;\n let socket: WebSocket | null = null;\n\n const clear = async () => {\n fallbackHttpTimer = -1;\n clearInterval(fallbackHttpTimer);\n socket?.close();\n if (disableCleanupRequest !== true) {\n await deleteRequest(id!);\n }\n };\n\n const processApprove = (data: HereProviderResult) => {\n switch (data.status) {\n case HereProviderStatus.APPROVING:\n delegate.onApproving?.(data);\n strategy?.onApproving?.(data);\n return;\n\n case HereProviderStatus.FAILED:\n clear();\n reject(new HereProviderError(data.payload));\n delegate.onFailed?.(data);\n strategy?.onFailed?.(data);\n return;\n\n case HereProviderStatus.SUCCESS:\n clear();\n resolve(data);\n delegate.onSuccess?.(data);\n strategy?.onSuccess?.(data);\n return;\n }\n };\n\n const rejectAction = (payload?: string) => {\n processApprove({\n type: request.selector?.type || \"local\",\n status: HereProviderStatus.FAILED,\n payload,\n });\n };\n\n delegate.onRequested?.(id!, request, rejectAction);\n strategy?.onRequested?.(id!, request, rejectAction);\n signal?.addEventListener(\"abort\", () => rejectAction());\n\n const setupTimer = () => {\n if (fallbackHttpTimer === -1) {\n return;\n }\n\n fallbackHttpTimer = setTimeout(async () => {\n try {\n const data = await getResponse(id!);\n if (fallbackHttpTimer === -1) return;\n processApprove(data);\n setupTimer();\n } catch (e) {\n const status = HereProviderStatus.FAILED;\n const error = e instanceof Error ? e : undefined;\n const payload = error?.message;\n\n clear();\n reject(new HereProviderError(payload, error));\n delegate.onFailed?.({ type: request.selector?.type || \"local\", status, payload });\n strategy?.onFailed?.({ type: request.selector?.type || \"local\", status, payload });\n }\n }, 3000);\n };\n\n setupTimer();\n\n // Mobile flow doesn't support cross tabs socket background process\n if (isMobile() === false) {\n const endpoint = `${socketApi}/ws/${id}`;\n socket = new WebSocket(endpoint);\n socket.onmessage = (e) => {\n if (e.data == null) return;\n try {\n const data = JSON.parse(e.data);\n processApprove(data);\n } catch {\n // nope\n }\n };\n }\n });\n};\n","import sha1 from \"sha1\";\nimport uuid4 from \"uuid4\";\nimport { base_decode, base_encode } from \"near-api-js/lib/utils/serialize\";\nimport { HereProviderRequest, HereProviderResult } from \"../provider\";\nimport { getDeviceId } from \"../utils\";\n\nexport const proxyApi = \"https://h4n.app\";\n\nexport const getRequest = async (id: string, signal?: AbortSignal): Promise => {\n const res = await fetch(`${proxyApi}/${id}/request`, {\n signal,\n headers: { \"content-type\": \"application/json\" },\n method: \"GET\",\n });\n\n if (res.ok === false) {\n throw Error(await res.text());\n }\n\n const { data } = await res.json();\n return JSON.parse(Buffer.from(base_decode(data)).toString(\"utf8\"));\n};\n\nexport const getResponse = async (id: string): Promise => {\n const res = await fetch(`${proxyApi}/${id}/response`, {\n headers: { \"content-type\": \"application/json\" },\n method: \"GET\",\n });\n\n if (res.ok === false) {\n throw Error(await res.text());\n }\n\n const { data } = await res.json();\n const result: HereProviderResult = JSON.parse(data) ?? {};\n return Object.assign({ type: \"here\", public_key: \"\", account_id: \"\", payload: \"\", status: -1, path: \"\" }, result);\n};\n\nexport const deleteRequest = async (id: string) => {\n const res = await fetch(`${proxyApi}/${id}`, {\n headers: { \"content-type\": \"application/json\" },\n method: \"DELETE\",\n });\n\n if (res.ok === false) {\n throw Error(await res.text());\n }\n};\n\nexport const createRequest = async (request: HereProviderRequest, signal?: AbortSignal) => {\n const query = base_encode(JSON.stringify({ ...request, _id: uuid4() }));\n const hashsum = sha1(query);\n const id = Buffer.from(hashsum, \"hex\").toString(\"base64\");\n const urlsafe = id.replaceAll(\"/\", \"_\").replaceAll(\"-\", \"+\").slice(0, 13);\n\n const res = await fetch(`${proxyApi}/${urlsafe}/request`, {\n method: \"POST\",\n signal,\n body: JSON.stringify({\n topic_id: getDeviceId(),\n data: query,\n }),\n headers: {\n \"content-type\": \"application/json\",\n },\n });\n\n if (res.ok === false) {\n throw Error(await res.text());\n }\n\n return urlsafe;\n};\n","export { HereWallet } from \"./wallet\";\n\nexport * from \"./actions\";\nexport * from \"./HereKeyStore\";\nexport * from \"./JSONStorage\";\nexport * from \"./actions/types\";\nexport * from \"./WidgetStrategy\";\nexport * from \"./WindowStrategy\";\nexport * from \"./provider\";\nexport * from \"./types\";\nexport * from \"./utils\";\nexport * from \"./here-provider\";\n","import * as borsh from \"borsh\";\nimport js_sha256 from \"js-sha256\";\nimport { PublicKey } from \"near-api-js/lib/utils\";\nimport { SignedMessageNEP0413, SignMessageOptionsNEP0413 } from \"./types\";\n\nexport class AuthPayload implements SignMessageOptionsNEP0413 {\n readonly message: string;\n readonly recipient: string;\n readonly nonce: Buffer;\n readonly callbackUrl?: string | undefined;\n readonly tag: number;\n\n constructor({ message, nonce, recipient, callbackUrl }: SignMessageOptionsNEP0413) {\n this.tag = 2147484061;\n this.message = message;\n this.nonce = nonce;\n this.recipient = recipient;\n if (callbackUrl) {\n this.callbackUrl = callbackUrl;\n }\n }\n}\n\nexport const authPayloadSchema: borsh.Schema = {\n struct: {\n tag: \"u32\",\n message: \"string\",\n nonce: { array: { type: \"u8\", len: 32 } },\n recipient: \"string\",\n callbackUrl: { option: \"string\" },\n },\n};\n\nexport function verifySignature(request: SignMessageOptionsNEP0413, result: SignedMessageNEP0413) {\n // Reconstruct the payload that was **actually signed**\n const payload = new AuthPayload(request);\n const borsh_payload = borsh.serialize(authPayloadSchema, payload);\n const to_sign = Uint8Array.from(js_sha256.sha256.array(borsh_payload));\n\n // Reconstruct the signature from the parameter given in the URL\n let real_signature = new Uint8Array(Buffer.from(result.signature, \"base64\"));\n\n // Use the public Key to verify that the private-counterpart signed the message\n const myPK = PublicKey.from(result.publicKey);\n return myPK.verify(to_sign, real_signature);\n}\n","import { HereCall, HereStrategy, SignMessageOptionsLegacy, SignMessageOptionsNEP0413 } from \"./types\";\n\nexport type SelectorType = { id?: string; type?: string };\nexport type HereProviderSign =\n | ({ network?: string; type: \"sign\"; selector?: SelectorType } & SignMessageOptionsLegacy)\n | {\n network?: string;\n type: \"sign\";\n nonce: number[];\n message: string;\n recipient: string;\n selector: SelectorType;\n };\n\nexport type HereProviderCall = {\n network?: string;\n transactions: HereCall[];\n type: \"call\";\n selector: SelectorType;\n};\n\nexport type HereProviderImport = {\n type: \"import\";\n keystore: string;\n network?: string;\n selector: SelectorType;\n};\n\nexport type HereProviderKeypom = {\n type: \"keypom\";\n contract: string;\n secret: string;\n selector: SelectorType;\n};\n\nexport type HereProviderRequest = HereProviderCall | HereProviderSign | HereProviderImport | HereProviderKeypom;\n\nexport interface HereProviderOptions extends HereStrategy {\n id?: string;\n request: HereProviderRequest;\n disableCleanupRequest?: boolean;\n strategy?: HereStrategy;\n signal?: AbortSignal;\n}\n\nexport enum HereProviderStatus {\n APPROVING = 1,\n FAILED = 2,\n SUCCESS = 3,\n}\n\nexport interface HereProviderResult {\n type: string;\n path?: string;\n public_key?: string;\n account_id?: string;\n payload?: string;\n topic?: string;\n status: HereProviderStatus;\n}\n\nexport class HereProviderError extends Error {\n constructor(readonly payload?: string, readonly parentError?: Error) {\n super(payload ?? parentError?.message);\n }\n}\n\nexport type HereProvider = (options: HereProviderOptions) => Promise;\n","import uuid4 from \"uuid4\";\nimport { AccessKeyInfoView } from \"near-api-js/lib/providers/provider\";\nimport { HereProviderError, HereProviderResult, HereProviderStatus } from \"./provider\";\nimport { HereAsyncOptions, HereCall } from \"./types\";\nimport { Action } from \"./actions/types\";\n\nexport const getDeviceId = () => {\n const topicId = window.localStorage.getItem(\"herewallet-topic\") || uuid4();\n window.localStorage.setItem(\"herewallet-topic\", topicId);\n return topicId;\n};\n\nexport const isMobile = () => {\n return window.matchMedia(\"(any-pointer:coarse)\").matches;\n};\n\nexport const serializeActions = (actions: Action[]) => {\n return actions.map((act) => {\n if (act.type !== \"FunctionCall\") return act;\n let { args, deposit, gas, methodName } = act.params;\n\n if (ArrayBuffer.isView(args)) {\n args = Buffer.from(args.buffer, args.byteOffset, args.byteLength);\n }\n\n if (args instanceof Buffer) {\n args = args.toString(\"base64\");\n }\n\n return {\n type: act.type,\n params: { args, deposit, gas, methodName },\n };\n });\n};\n\nexport const getPublicKeys = async (\n rpc: string,\n accountId: string\n): Promise> => {\n const res = await fetch(rpc, {\n method: \"POST\",\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"dontcare\",\n method: \"query\",\n params: {\n request_type: \"view_access_key_list\",\n finality: \"final\",\n account_id: accountId,\n },\n }),\n headers: {\n \"content-type\": \"application/json\",\n },\n });\n\n if (res.ok === false) {\n return [];\n }\n\n const data = await res.json();\n return data.result.keys;\n};\n\nexport const internalThrow = (error: unknown, delegate: HereAsyncOptions) => {\n if (error instanceof HereProviderError) {\n throw error;\n }\n\n const result: HereProviderResult = {\n payload: error instanceof Error ? error.message : \"UNKNOWN\",\n status: HereProviderStatus.FAILED,\n type: delegate.selector?.type || \"local\",\n account_id: delegate.selector?.id || \"\",\n };\n\n delegate.onFailed?.(result);\n delegate?.strategy?.onFailed?.(result);\n throw error;\n};\n\nexport const isValidAccessKey = (accountId: string, accessKey: AccessKeyInfoView, call: HereCall) => {\n const { permission } = accessKey.access_key;\n if (permission === \"FullAccess\") {\n return true;\n }\n\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === accountId && allowedMethods.includes(\"add_request_and_confirm\")) {\n return true;\n }\n\n if (allowedReceiverId === call.receiverId) {\n if (call.actions.length !== 1) return false;\n\n return call.actions.every((action) => {\n if (action.type !== \"FunctionCall\") return false;\n return (\n (!action.params.deposit || action.params.deposit.toString() === \"0\") &&\n (allowedMethods.length === 0 || allowedMethods.includes(action.params.methodName))\n );\n });\n }\n }\n\n return false;\n};\n","import { Account, Connection, InMemorySigner, KeyPair } from \"near-api-js\";\nimport { FinalExecutionOutcome, JsonRpcProvider } from \"near-api-js/lib/providers\";\nimport { PublicKey, KeyPairEd25519 } from \"near-api-js/lib/utils/key_pair\";\nimport { sha256 } from \"js-sha256\";\nimport { randomBytes } from \"crypto\";\nimport BN from \"bn.js\";\n\nimport { HereAuthStorage, HereKeyStore } from \"./HereKeyStore\";\nimport { HereProvider, HereProviderStatus } from \"./provider\";\nimport { internalThrow, isValidAccessKey, serializeActions } from \"./utils\";\nimport { proxyProvider } from \"./here-provider\";\nimport { createAction } from \"./actions\";\nimport { WidgetStrategy } from \"./WidgetStrategy\";\nimport {\n HereCall,\n HereAsyncOptions,\n HereWalletProtocol,\n SignAndSendTransactionOptions,\n SignAndSendTransactionsOptions,\n SignMessageOptions,\n SignInOptions,\n HereInitializeOptions,\n HereStrategy,\n SignMessageOptionsNEP0413,\n SignMessageOptionsLegacy,\n SignMessageLegacyReturn,\n SignedMessageNEP0413,\n} from \"./types\";\nimport { verifySignature } from \"./nep0314\";\n\nclass AccessDenied extends Error {}\n\nexport class HereWallet implements HereWalletProtocol {\n private readonly connection: Connection;\n private readonly defaultStrategy: () => HereStrategy;\n private readonly authStorage: HereAuthStorage;\n private readonly defaultProvider: HereProvider;\n\n public constructor({\n nodeUrl,\n networkId = \"mainnet\",\n authStorage = new HereKeyStore(),\n defaultStrategy = () => new WidgetStrategy(),\n defaultProvider = proxyProvider,\n }: HereInitializeOptions = {}) {\n this.authStorage = authStorage;\n this.defaultProvider = defaultProvider;\n this.defaultStrategy = defaultStrategy;\n\n const signer = new InMemorySigner(this.authStorage);\n const rpc = new JsonRpcProvider({ url: nodeUrl ?? `https://rpc.${networkId}.near.org` });\n this.connection = Connection.fromConfig({\n jsvmAccountId: `jsvm.${networkId}`,\n provider: rpc,\n networkId,\n signer,\n });\n }\n\n get rpc() {\n return this.connection.provider;\n }\n\n get signer() {\n return this.connection.signer;\n }\n\n get networkId() {\n return this.connection.networkId;\n }\n\n public async account(id?: string) {\n const accountId = id ?? (await this.authStorage.getActiveAccount(this.networkId));\n if (accountId == null) throw new AccessDenied(\"Wallet not signed in\");\n return new Account(this.connection, accountId);\n }\n\n public async isSignedIn() {\n const id = await this.authStorage.getActiveAccount(this.networkId);\n return id != null;\n }\n\n public async signOut() {\n const accountId = await this.authStorage.getActiveAccount(this.networkId);\n if (accountId == null) throw new Error(\"Wallet not signed in\");\n\n const key = await this.authStorage.getKey(this.networkId, accountId);\n if (key != null) {\n const publicKey = key.getPublicKey().toString();\n await this.silentSignAndSendTransaction({\n receiverId: accountId,\n actions: [{ type: \"DeleteKey\", params: { publicKey } }],\n }).catch(() => {});\n }\n\n await this.authStorage.removeKey(this.networkId, accountId);\n }\n\n public async getHereBalance(id?: string) {\n const account = await this.account(id);\n const contractId = this.networkId === \"mainnet\" ? \"here.storage.near\" : \"here.storage.testnet\";\n const hereCoins = await account\n .viewFunction({\n args: { account_id: account.accountId },\n methodName: \"ft_balance_of\",\n contractId,\n })\n .catch(() => \"0\");\n\n return new BN(hereCoins);\n }\n\n public async getAvailableBalance(id?: string): Promise {\n const account = await this.account(id);\n const result = await account.getAccountBalance();\n const hereBalance = await this.getHereBalance();\n return new BN(result.available).add(new BN(hereBalance));\n }\n\n public async getAccounts() {\n return await this.authStorage.getAccounts(this.networkId);\n }\n\n public async getAccountId() {\n const accountId = await this.authStorage.getActiveAccount(this.networkId);\n if (accountId == null) throw new Error(\"Wallet not signed in\");\n return accountId;\n }\n\n public async switchAccount(id: string) {\n const key = await this.authStorage.getKey(this.networkId, id);\n if (key == null) throw new Error(`Account ${id} not signed in`);\n await this.authStorage.setActiveAccount(this.networkId, id);\n }\n\n public async signIn({\n contractId,\n allowance,\n methodNames = [],\n selector,\n ...delegate\n }: SignInOptions = {}): Promise {\n if (contractId == null) {\n const { accountId } = await this.authenticate(delegate);\n\n // Generate random keypair\n await this.authStorage.setKey(this.networkId, accountId, KeyPairEd25519.fromRandom());\n await this.authStorage.setActiveAccount(this.networkId, accountId);\n return accountId;\n }\n\n delegate.strategy = delegate.strategy ?? this.defaultStrategy();\n delegate.provider = delegate.provider ?? this.defaultProvider;\n delegate.onInitialized?.();\n delegate.strategy?.onInitialized?.();\n\n try {\n const accessKey = KeyPair.fromRandom(\"ed25519\");\n const permission = { receiverId: contractId, methodNames, allowance };\n const data = await delegate.provider({\n ...delegate,\n request: {\n type: \"call\",\n network: this.networkId,\n selector: selector || {},\n transactions: [\n {\n actions: [\n {\n type: \"AddKey\",\n params: {\n publicKey: accessKey.getPublicKey().toString(),\n accessKey: { permission },\n },\n },\n ],\n },\n ],\n },\n });\n\n if (data.account_id == null) {\n throw Error(\"Transaction is failed\");\n }\n\n await this.authStorage.setKey(this.networkId, data.account_id, accessKey);\n await this.authStorage.setActiveAccount(this.networkId, data.account_id);\n return data.account_id;\n } catch (error) {\n internalThrow(error, delegate);\n throw error;\n }\n }\n\n public async silentSignAndSendTransaction({ actions, receiverId, signerId }: HereCall) {\n const account = await this.account(signerId);\n const localKey = await this.authStorage.getKey(this.networkId, account.accountId).catch(() => null);\n if (localKey == null) throw new AccessDenied();\n\n const publicKey = localKey.getPublicKey();\n const accessKeys = await account.getAccessKeys();\n\n const call = { receiverId, actions };\n const isValid = accessKeys.some((v) => {\n if (v.public_key !== publicKey.toString()) return false;\n return isValidAccessKey(account.accountId, v, call);\n });\n\n if (isValid === false) throw new AccessDenied();\n\n return await account.signAndSendTransaction({\n actions: actions.map((a) => createAction(a)),\n receiverId: receiverId ?? account.accountId,\n });\n }\n\n public async signAndSendTransaction(opts: SignAndSendTransactionOptions) {\n const { signerId, receiverId, actions, ...args } = opts;\n const delegate = args as HereAsyncOptions;\n\n delegate.strategy = delegate.strategy ?? this.defaultStrategy();\n delegate.provider = delegate.provider ?? this.defaultProvider;\n delegate.onInitialized?.();\n delegate.strategy?.onInitialized?.();\n\n try {\n const result = await this.silentSignAndSendTransaction({ receiverId, actions, signerId });\n const success = { type: \"local\", status: HereProviderStatus.SUCCESS, payload: result?.transaction_outcome.id };\n delegate.onSuccess?.(success);\n delegate.strategy?.onSuccess?.(success);\n return result;\n } catch (e: any) {\n try {\n // If silent sign return AccessDenied or NotEnoughAllowance we request mobile wallet\n // OR its just transaction error\n if (!(e instanceof AccessDenied) && e?.type !== \"NotEnoughAllowance\") {\n internalThrow(e, delegate);\n throw e;\n }\n\n const activeAccount = await this.getAccountId().catch(() => undefined);\n const data = await delegate.provider({\n ...delegate,\n request: {\n type: \"call\",\n network: this.networkId,\n transactions: [{ actions: serializeActions(actions), receiverId, signerId }],\n selector: opts.selector || { id: signerId || activeAccount },\n },\n });\n\n if (data.payload == null || data.account_id == null) {\n throw Error(\"Transaction not found, but maybe executed\");\n }\n\n return await this.rpc.txStatus(data.payload, data.account_id);\n } catch (error) {\n internalThrow(error, delegate);\n throw error;\n }\n }\n }\n\n async verifyMessageNEP0413(request: SignMessageOptionsNEP0413, result: SignedMessageNEP0413) {\n const isSignatureValid = verifySignature(request, result);\n if (!isSignatureValid) throw Error(\"Incorrect signature\");\n\n const account = await this.account(result.accountId);\n const keys = await account.getAccessKeys();\n const isFullAccess = keys.some((k) => {\n if (k.public_key !== result.publicKey) return false;\n if (k.access_key.permission !== \"FullAccess\") return false;\n return true;\n });\n\n if (!isFullAccess) throw Error(\"Signer public key is not full access\");\n return true;\n }\n\n async authenticate(options: HereAsyncOptions & Partial = {}) {\n const signRequest = {\n nonce: options.nonce ?? randomBytes(32),\n recipient: options.recipient ?? window.location.host,\n message: options.message ?? \"Authenticate\",\n };\n\n const signed = await this.signMessage({ ...signRequest, ...options });\n await this.verifyMessageNEP0413(signRequest, signed);\n return signed;\n }\n\n public signMessage(options: HereAsyncOptions & SignMessageOptionsNEP0413): Promise;\n public signMessage(options: HereAsyncOptions & SignMessageOptionsLegacy): Promise;\n public async signMessage(options: SignMessageOptions): Promise {\n options.strategy = options.strategy ?? this.defaultStrategy();\n options.provider = options.provider ?? this.defaultProvider;\n options.onInitialized?.();\n options.strategy?.onInitialized?.();\n\n // Legacy format with receiver property, does not correspond to the current version of the standard\n if (\"receiver\" in options) return await this.legacySignMessage(options);\n\n const activeAccount = await this.getAccountId().catch(() => undefined);\n const data = await options.provider({\n ...options,\n request: {\n type: \"sign\",\n message: options.message,\n recipient: options.recipient,\n nonce: Array.from(options.nonce),\n network: this.networkId,\n selector: options.selector || { id: activeAccount },\n },\n });\n\n if (data?.payload == null) throw Error(\"Signature not found\");\n const { publicKey, signature, accountId }: SignedMessageNEP0413 = JSON.parse(data.payload);\n return { publicKey, signature, accountId };\n }\n\n async legacySignMessage({\n message,\n receiver,\n nonce,\n selector,\n ...delegate\n }: SignMessageOptionsLegacy & HereAsyncOptions): Promise {\n if (nonce == null) {\n let nonceArray: Uint8Array = new Uint8Array(32);\n nonce = [...crypto.getRandomValues(nonceArray)];\n }\n\n const activeAccount = await this.getAccountId().catch(() => undefined);\n const data = await delegate.provider?.({\n ...delegate,\n request: {\n type: \"sign\",\n network: this.networkId,\n selector: selector || { id: activeAccount },\n message,\n receiver,\n nonce,\n },\n });\n\n if (data?.payload == null) {\n throw Error(\"Signature not found\");\n }\n\n try {\n const { publicKey, signature, accountId }: SignedMessageNEP0413 = JSON.parse(data.payload);\n const sign = new Uint8Array(Buffer.from(signature, \"base64\"));\n const json = JSON.stringify({ message, receiver, nonce });\n const msg = new Uint8Array(sha256.digest(`NEP0413:` + json));\n const isVerify = PublicKey.from(publicKey).verify(msg, sign);\n if (isVerify === false) throw Error();\n\n const account = await this.account(accountId);\n const keys = await account.getAccessKeys();\n const pb = publicKey.toString();\n const isValid = keys.some((k) => {\n if (k.public_key !== pb) return false;\n if (k.access_key.permission !== \"FullAccess\") return false;\n return true;\n });\n\n if (isValid === false) throw Error();\n return {\n signature: new Uint8Array(Buffer.from(signature, \"base64\")),\n publicKey: PublicKey.from(publicKey),\n message: `NEP0413:` + json,\n receiver,\n accountId,\n nonce,\n };\n } catch {\n throw Error(\"Signature not correct\");\n }\n }\n\n public async signAndSendTransactions({ transactions, selector, ...delegate }: SignAndSendTransactionsOptions) {\n delegate.strategy = delegate.strategy ?? this.defaultStrategy();\n delegate.provider = delegate.provider ?? this.defaultProvider;\n delegate.onInitialized?.();\n delegate.strategy?.onInitialized?.();\n\n let results: FinalExecutionOutcome[] = [];\n try {\n for (const call of transactions) {\n const r = await this.silentSignAndSendTransaction(call);\n results.push(r);\n }\n\n const payload = results.map((result) => result.transaction_outcome.id).join(\",\");\n const success = { type: \"local\", status: HereProviderStatus.SUCCESS, payload };\n delegate.onSuccess?.(success);\n delegate.strategy?.onSuccess?.(success);\n return results;\n } catch (e: any) {\n try {\n // If silent sign return access denied or not enough balance we request mobile wallet\n // OR its just transaction error\n if (!(e instanceof AccessDenied) && e?.type !== \"NotEnoughAllowance\") {\n internalThrow(e, delegate);\n throw e;\n }\n\n const activeAccount = await this.getAccountId().catch(() => undefined);\n const uncompleted = transactions.slice(results.length);\n const data = await delegate.provider({\n ...delegate,\n request: {\n type: \"call\",\n network: this.networkId,\n selector: selector || { id: uncompleted[0].signerId || activeAccount },\n transactions: uncompleted.map((trx) => ({ ...trx, actions: serializeActions(trx.actions) })),\n },\n });\n\n if (data.payload == null || data.account_id == null) {\n throw Error(\"Transaction not found, but maybe executed\");\n }\n\n const promises = data.payload.split(\",\").map((id) => this.rpc.txStatus(id, data.account_id!));\n return await Promise.all(promises);\n } catch (error) {\n internalThrow(error, delegate);\n throw error;\n }\n }\n }\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict'\n\nconst { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require('./lib/utils')\nconst SCHEMES = require('./lib/schemes')\n\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = serialize(parse(uri, options), options)\n } else if (typeof uri === 'object') {\n uri = parse(serialize(uri, options), options)\n }\n return uri\n}\n\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = Object.assign({ scheme: 'null' }, options)\n const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n return serialize(resolved, { ...schemelessOptions, skipEscape: true })\n}\n\nfunction resolveComponents (base, relative, options, skipNormalization) {\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base components\n relative = parse(serialize(relative, options), options) // normalize relative components\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path.charAt(0) === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\nfunction serialize (cmpts, opts) {\n const components = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || components.scheme || '').toLowerCase()]\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options)\n\n if (components.path !== undefined) {\n if (!options.skipEscape) {\n components.path = escape(components.path)\n\n if (components.scheme !== undefined) {\n components.path = components.path.split('%3A').join(':')\n }\n } else {\n components.path = unescape(components.path)\n }\n }\n\n if (options.reference !== 'suffix' && components.scheme) {\n uriTokens.push(components.scheme, ':')\n }\n\n const authority = recomposeAuthority(components, options)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (components.path && components.path.charAt(0) !== '/') {\n uriTokens.push('/')\n }\n }\n if (components.path !== undefined) {\n let s = components.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (authority === undefined) {\n s = s.replace(/^\\/\\//u, '/%2F') // don't allow the path to start with \"//\"\n }\n\n uriTokens.push(s)\n }\n\n if (components.query !== undefined) {\n uriTokens.push('?', components.query)\n }\n\n if (components.fragment !== undefined) {\n uriTokens.push('#', components.fragment)\n }\n return uriTokens.join('')\n}\n\nconst hexLookUp = Array.from({ length: 127 }, (v, k) => /[^!\"$&'()*+,\\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)))\n\nfunction nonSimpleDomain (value) {\n let code = 0\n for (let i = 0, len = value.length; i < len; ++i) {\n code = value.charCodeAt(i)\n if (code > 126 || hexLookUp[code]) {\n return true\n }\n }\n return false\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n const gotEncoding = uri.indexOf('%') !== -1\n let isIP = false\n if (options.reference === 'suffix') uri = (options.scheme ? options.scheme + ':' : '') + '//' + uri\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = normalizeIPv4(parsed.host)\n if (ipv4result.isIPV4 === false) {\n const ipv6result = normalizeIPv6(ipv4result.host, { isIPV4: false })\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n parsed.host = ipv4result.host\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && !parsed.path && parsed.query === undefined) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || '').toLowerCase()]\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (gotEncoding && parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (gotEncoding && parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n if (parsed.path !== undefined && parsed.path.length) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment !== undefined && parsed.fragment.length) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponents,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{4}\\b-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host, opts = {}) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components, options) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host, { isIPV4: false })\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport { urlAlphabet }\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import * as nearAPI from 'near-api-js';\n\nconst {\n transactions,\n utils\n} = nearAPI;\nconst getAccessKey = permission => {\n if (permission === \"FullAccess\") {\n return transactions.fullAccessKey();\n }\n const {\n receiverId,\n methodNames = []\n } = permission;\n const allowance = permission.allowance ? BigInt(permission.allowance) : undefined;\n return transactions.functionCallAccessKey(receiverId, methodNames, allowance);\n};\nconst createAction = action => {\n switch (action.type) {\n case \"CreateAccount\":\n return transactions.createAccount();\n case \"DeployContract\":\n {\n const {\n code\n } = action.params;\n return transactions.deployContract(code);\n }\n case \"FunctionCall\":\n {\n const {\n methodName,\n args,\n gas,\n deposit\n } = action.params;\n return transactions.functionCall(methodName, args, BigInt(gas), BigInt(deposit));\n }\n case \"Transfer\":\n {\n const {\n deposit\n } = action.params;\n return transactions.transfer(BigInt(deposit));\n }\n case \"Stake\":\n {\n const {\n stake,\n publicKey\n } = action.params;\n return transactions.stake(BigInt(stake), utils.PublicKey.from(publicKey));\n }\n case \"AddKey\":\n {\n const {\n publicKey,\n accessKey\n } = action.params;\n return transactions.addKey(utils.PublicKey.from(publicKey),\n // TODO: Use accessKey.nonce? near-api-js seems to think 0 is fine?\n getAccessKey(accessKey.permission));\n }\n case \"DeleteKey\":\n {\n const {\n publicKey\n } = action.params;\n return transactions.deleteKey(utils.PublicKey.from(publicKey));\n }\n case \"DeleteAccount\":\n {\n const {\n beneficiaryId\n } = action.params;\n return transactions.deleteAccount(beneficiaryId);\n }\n default:\n throw new Error(\"Invalid action type\");\n }\n};\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar fails$8 = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\nvar toString = {}.toString;\n\nvar classofRaw$1 = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\nvar fails$7 = fails$8;\nvar classof$5 = classofRaw$1;\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar indexedObject = fails$7(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof$5(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nvar requireObjectCoercible$2 = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = indexedObject;\nvar requireObjectCoercible$1 = requireObjectCoercible$2;\n\nvar toIndexedObject$4 = function (it) {\n return IndexedObject(requireObjectCoercible$1(it));\n};\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global$i =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\nvar shared$2 = {exports: {}};\n\nvar fails$6 = fails$8;\n\n// Thank's IE8 for his funny defineProperty\nvar descriptors = !fails$6(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\nvar objectDefineProperty = {};\n\nvar isObject$7 = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\nvar global$h = global$i;\nvar isObject$6 = isObject$7;\n\nvar document$2 = global$h.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject$6(document$2) && isObject$6(document$2.createElement);\n\nvar documentCreateElement$1 = function (it) {\n return EXISTS ? document$2.createElement(it) : {};\n};\n\nvar DESCRIPTORS$5 = descriptors;\nvar fails$5 = fails$8;\nvar createElement$1 = documentCreateElement$1;\n\n// Thank's IE8 for his funny defineProperty\nvar ie8DomDefine = !DESCRIPTORS$5 && !fails$5(function () {\n return Object.defineProperty(createElement$1('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\nvar isObject$5 = isObject$7;\n\nvar anObject$b = function (it) {\n if (!isObject$5(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\nvar isObject$4 = isObject$7;\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nvar toPrimitive$2 = function (input, PREFERRED_STRING) {\n if (!isObject$4(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$4(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject$4(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$4(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\nvar DESCRIPTORS$4 = descriptors;\nvar IE8_DOM_DEFINE$1 = ie8DomDefine;\nvar anObject$a = anObject$b;\nvar toPrimitive$1 = toPrimitive$2;\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nobjectDefineProperty.f = DESCRIPTORS$4 ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject$a(O);\n P = toPrimitive$1(P, true);\n anObject$a(Attributes);\n if (IE8_DOM_DEFINE$1) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\nvar createPropertyDescriptor$3 = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\nvar DESCRIPTORS$3 = descriptors;\nvar definePropertyModule$4 = objectDefineProperty;\nvar createPropertyDescriptor$2 = createPropertyDescriptor$3;\n\nvar createNonEnumerableProperty$7 = DESCRIPTORS$3 ? function (object, key, value) {\n return definePropertyModule$4.f(object, key, createPropertyDescriptor$2(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\nvar global$g = global$i;\nvar createNonEnumerableProperty$6 = createNonEnumerableProperty$7;\n\nvar setGlobal$3 = function (key, value) {\n try {\n createNonEnumerableProperty$6(global$g, key, value);\n } catch (error) {\n global$g[key] = value;\n } return value;\n};\n\nvar global$f = global$i;\nvar setGlobal$2 = setGlobal$3;\n\nvar SHARED = '__core-js_shared__';\nvar store$3 = global$f[SHARED] || setGlobal$2(SHARED, {});\n\nvar sharedStore = store$3;\n\nvar store$2 = sharedStore;\n\n(shared$2.exports = function (key, value) {\n return store$2[key] || (store$2[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar has$9 = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\nvar id = 0;\nvar postfix = Math.random();\n\nvar uid$2 = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\nvar fails$4 = fails$8;\n\nvar nativeSymbol = !!Object.getOwnPropertySymbols && !fails$4(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\nvar NATIVE_SYMBOL$1 = nativeSymbol;\n\nvar useSymbolAsUid = NATIVE_SYMBOL$1\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\nvar global$e = global$i;\nvar shared$1 = shared$2.exports;\nvar has$8 = has$9;\nvar uid$1 = uid$2;\nvar NATIVE_SYMBOL = nativeSymbol;\nvar USE_SYMBOL_AS_UID = useSymbolAsUid;\n\nvar WellKnownSymbolsStore = shared$1('wks');\nvar Symbol$1 = global$e.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;\n\nvar wellKnownSymbol$d = function (name) {\n if (!has$8(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has$8(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nvar toInteger$2 = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\nvar toInteger$1 = toInteger$2;\n\nvar min$1 = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nvar toLength$2 = function (argument) {\n return argument > 0 ? min$1(toInteger$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\nvar toInteger = toInteger$2;\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nvar toAbsoluteIndex$1 = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\nvar toIndexedObject$3 = toIndexedObject$4;\nvar toLength$1 = toLength$2;\nvar toAbsoluteIndex = toAbsoluteIndex$1;\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject$3($this);\n var length = toLength$1(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nvar arrayIncludes = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\nvar hiddenKeys$4 = {};\n\nvar has$7 = has$9;\nvar toIndexedObject$2 = toIndexedObject$4;\nvar indexOf = arrayIncludes.indexOf;\nvar hiddenKeys$3 = hiddenKeys$4;\n\nvar objectKeysInternal = function (object, names) {\n var O = toIndexedObject$2(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has$7(hiddenKeys$3, key) && has$7(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has$7(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n// IE8- don't enum bug keys\nvar enumBugKeys$3 = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\nvar internalObjectKeys$1 = objectKeysInternal;\nvar enumBugKeys$2 = enumBugKeys$3;\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nvar objectKeys$1 = Object.keys || function keys(O) {\n return internalObjectKeys$1(O, enumBugKeys$2);\n};\n\nvar DESCRIPTORS$2 = descriptors;\nvar definePropertyModule$3 = objectDefineProperty;\nvar anObject$9 = anObject$b;\nvar objectKeys = objectKeys$1;\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nvar objectDefineProperties = DESCRIPTORS$2 ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject$9(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule$3.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\nvar global$d = global$i;\n\nvar path$1 = global$d;\n\nvar path = path$1;\nvar global$c = global$i;\n\nvar aFunction$5 = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nvar getBuiltIn$5 = function (namespace, method) {\n return arguments.length < 2 ? aFunction$5(path[namespace]) || aFunction$5(global$c[namespace])\n : path[namespace] && path[namespace][method] || global$c[namespace] && global$c[namespace][method];\n};\n\nvar getBuiltIn$4 = getBuiltIn$5;\n\nvar html$2 = getBuiltIn$4('document', 'documentElement');\n\nvar shared = shared$2.exports;\nvar uid = uid$2;\n\nvar keys = shared('keys');\n\nvar sharedKey$3 = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\nvar anObject$8 = anObject$b;\nvar defineProperties = objectDefineProperties;\nvar enumBugKeys$1 = enumBugKeys$3;\nvar hiddenKeys$2 = hiddenKeys$4;\nvar html$1 = html$2;\nvar documentCreateElement = documentCreateElement$1;\nvar sharedKey$2 = sharedKey$3;\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO$1 = sharedKey$2('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html$1.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys$1.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys$1[length]];\n return NullProtoObject();\n};\n\nhiddenKeys$2[IE_PROTO$1] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nvar objectCreate = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject$8(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO$1] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nvar wellKnownSymbol$c = wellKnownSymbol$d;\nvar create$1 = objectCreate;\nvar definePropertyModule$2 = objectDefineProperty;\n\nvar UNSCOPABLES = wellKnownSymbol$c('unscopables');\nvar ArrayPrototype$1 = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype$1[UNSCOPABLES] == undefined) {\n definePropertyModule$2.f(ArrayPrototype$1, UNSCOPABLES, {\n configurable: true,\n value: create$1(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nvar addToUnscopables$1 = function (key) {\n ArrayPrototype$1[UNSCOPABLES][key] = true;\n};\n\nvar iterators = {};\n\nvar store$1 = sharedStore;\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store$1.inspectSource != 'function') {\n store$1.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nvar inspectSource$3 = store$1.inspectSource;\n\nvar global$b = global$i;\nvar inspectSource$2 = inspectSource$3;\n\nvar WeakMap$1 = global$b.WeakMap;\n\nvar nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource$2(WeakMap$1));\n\nvar NATIVE_WEAK_MAP = nativeWeakMap;\nvar global$a = global$i;\nvar isObject$3 = isObject$7;\nvar createNonEnumerableProperty$5 = createNonEnumerableProperty$7;\nvar objectHas = has$9;\nvar sharedKey$1 = sharedKey$3;\nvar hiddenKeys$1 = hiddenKeys$4;\n\nvar WeakMap = global$a.WeakMap;\nvar set$1, get, has$6;\n\nvar enforce = function (it) {\n return has$6(it) ? get(it) : set$1(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject$3(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set$1 = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has$6 = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey$1('state');\n hiddenKeys$1[STATE] = true;\n set$1 = function (it, metadata) {\n createNonEnumerableProperty$5(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has$6 = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nvar internalState = {\n set: set$1,\n get: get,\n has: has$6,\n enforce: enforce,\n getterFor: getterFor\n};\n\nvar objectGetOwnPropertyDescriptor = {};\n\nvar objectPropertyIsEnumerable = {};\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor$2 && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nobjectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor$2(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\nvar DESCRIPTORS$1 = descriptors;\nvar propertyIsEnumerableModule = objectPropertyIsEnumerable;\nvar createPropertyDescriptor$1 = createPropertyDescriptor$3;\nvar toIndexedObject$1 = toIndexedObject$4;\nvar toPrimitive = toPrimitive$2;\nvar has$5 = has$9;\nvar IE8_DOM_DEFINE = ie8DomDefine;\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nobjectGetOwnPropertyDescriptor.f = DESCRIPTORS$1 ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject$1(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has$5(O, P)) return createPropertyDescriptor$1(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\nvar redefine$5 = {exports: {}};\n\nvar global$9 = global$i;\nvar createNonEnumerableProperty$4 = createNonEnumerableProperty$7;\nvar has$4 = has$9;\nvar setGlobal$1 = setGlobal$3;\nvar inspectSource$1 = inspectSource$3;\nvar InternalStateModule$2 = internalState;\n\nvar getInternalState$2 = InternalStateModule$2.get;\nvar enforceInternalState = InternalStateModule$2.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(redefine$5.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has$4(value, 'name')) createNonEnumerableProperty$4(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global$9) {\n if (simple) O[key] = value;\n else setGlobal$1(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty$4(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState$2(this).source || inspectSource$1(this);\n});\n\nvar objectGetOwnPropertyNames = {};\n\nvar internalObjectKeys = objectKeysInternal;\nvar enumBugKeys = enumBugKeys$3;\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nobjectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\nvar objectGetOwnPropertySymbols = {};\n\nobjectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;\n\nvar getBuiltIn$3 = getBuiltIn$5;\nvar getOwnPropertyNamesModule = objectGetOwnPropertyNames;\nvar getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;\nvar anObject$7 = anObject$b;\n\n// all object keys, includes non-enumerable and symbols\nvar ownKeys$1 = getBuiltIn$3('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject$7(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\nvar has$3 = has$9;\nvar ownKeys = ownKeys$1;\nvar getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;\nvar definePropertyModule$1 = objectDefineProperty;\n\nvar copyConstructorProperties$1 = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule$1.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has$3(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\nvar fails$3 = fails$8;\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced$2 = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails$3(detection)\n : !!detection;\n};\n\nvar normalize = isForced$2.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced$2.data = {};\nvar NATIVE = isForced$2.NATIVE = 'N';\nvar POLYFILL = isForced$2.POLYFILL = 'P';\n\nvar isForced_1 = isForced$2;\n\nvar global$8 = global$i;\nvar getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;\nvar createNonEnumerableProperty$3 = createNonEnumerableProperty$7;\nvar redefine$4 = redefine$5.exports;\nvar setGlobal = setGlobal$3;\nvar copyConstructorProperties = copyConstructorProperties$1;\nvar isForced$1 = isForced_1;\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nvar _export = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global$8;\n } else if (STATIC) {\n target = global$8[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global$8[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor$1(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty$3(sourceProperty, 'sham', true);\n }\n // extend global\n redefine$4(target, key, sourceProperty, options);\n }\n};\n\nvar requireObjectCoercible = requireObjectCoercible$2;\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nvar toObject$1 = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\nvar fails$2 = fails$8;\n\nvar correctPrototypeGetter = !fails$2(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\nvar has$2 = has$9;\nvar toObject = toObject$1;\nvar sharedKey = sharedKey$3;\nvar CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nvar objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has$2(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\nvar getPrototypeOf$1 = objectGetPrototypeOf;\nvar createNonEnumerableProperty$2 = createNonEnumerableProperty$7;\nvar has$1 = has$9;\nvar wellKnownSymbol$b = wellKnownSymbol$d;\n\nvar ITERATOR$5 = wellKnownSymbol$b('iterator');\nvar BUGGY_SAFARI_ITERATORS$1 = false;\n\nvar returnThis$2 = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype$2, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf$1(getPrototypeOf$1(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$2 = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype$2 == undefined) IteratorPrototype$2 = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!has$1(IteratorPrototype$2, ITERATOR$5)) {\n createNonEnumerableProperty$2(IteratorPrototype$2, ITERATOR$5, returnThis$2);\n}\n\nvar iteratorsCore = {\n IteratorPrototype: IteratorPrototype$2,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1\n};\n\nvar defineProperty = objectDefineProperty.f;\nvar has = has$9;\nvar wellKnownSymbol$a = wellKnownSymbol$d;\n\nvar TO_STRING_TAG$3 = wellKnownSymbol$a('toStringTag');\n\nvar setToStringTag$3 = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG$3)) {\n defineProperty(it, TO_STRING_TAG$3, { configurable: true, value: TAG });\n }\n};\n\nvar IteratorPrototype$1 = iteratorsCore.IteratorPrototype;\nvar create = objectCreate;\nvar createPropertyDescriptor = createPropertyDescriptor$3;\nvar setToStringTag$2 = setToStringTag$3;\nvar Iterators$4 = iterators;\n\nvar returnThis$1 = function () { return this; };\n\nvar createIteratorConstructor$1 = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype$1, { next: createPropertyDescriptor(1, next) });\n setToStringTag$2(IteratorConstructor, TO_STRING_TAG, false);\n Iterators$4[TO_STRING_TAG] = returnThis$1;\n return IteratorConstructor;\n};\n\nvar isObject$2 = isObject$7;\n\nvar aPossiblePrototype$1 = function (it) {\n if (!isObject$2(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\nvar anObject$6 = anObject$b;\nvar aPossiblePrototype = aPossiblePrototype$1;\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject$6(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\nvar $$1 = _export;\nvar createIteratorConstructor = createIteratorConstructor$1;\nvar getPrototypeOf = objectGetPrototypeOf;\nvar setPrototypeOf = objectSetPrototypeOf;\nvar setToStringTag$1 = setToStringTag$3;\nvar createNonEnumerableProperty$1 = createNonEnumerableProperty$7;\nvar redefine$3 = redefine$5.exports;\nvar wellKnownSymbol$9 = wellKnownSymbol$d;\nvar Iterators$3 = iterators;\nvar IteratorsCore = iteratorsCore;\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR$4 = wellKnownSymbol$9('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nvar defineIterator$1 = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR$4]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR$4] != 'function') {\n createNonEnumerableProperty$1(CurrentIteratorPrototype, ITERATOR$4, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag$1(CurrentIteratorPrototype, TO_STRING_TAG, true);\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if (IterablePrototype[ITERATOR$4] !== defaultIterator) {\n createNonEnumerableProperty$1(IterablePrototype, ITERATOR$4, defaultIterator);\n }\n Iterators$3[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine$3(IterablePrototype, KEY, methods[KEY]);\n }\n } else $$1({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\nvar toIndexedObject = toIndexedObject$4;\nvar addToUnscopables = addToUnscopables$1;\nvar Iterators$2 = iterators;\nvar InternalStateModule$1 = internalState;\nvar defineIterator = defineIterator$1;\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState$1 = InternalStateModule$1.set;\nvar getInternalState$1 = InternalStateModule$1.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nvar es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState$1(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState$1(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators$2.Arguments = Iterators$2.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\nvar global$7 = global$i;\n\nvar nativePromiseConstructor = global$7.Promise;\n\nvar redefine$2 = redefine$5.exports;\n\nvar redefineAll$1 = function (target, src, options) {\n for (var key in src) redefine$2(target, key, src[key], options);\n return target;\n};\n\nvar getBuiltIn$2 = getBuiltIn$5;\nvar definePropertyModule = objectDefineProperty;\nvar wellKnownSymbol$8 = wellKnownSymbol$d;\nvar DESCRIPTORS = descriptors;\n\nvar SPECIES$2 = wellKnownSymbol$8('species');\n\nvar setSpecies$1 = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn$2(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES$2]) {\n defineProperty(Constructor, SPECIES$2, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\nvar aFunction$4 = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\nvar anInstance$1 = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\nvar iterate$2 = {exports: {}};\n\nvar wellKnownSymbol$7 = wellKnownSymbol$d;\nvar Iterators$1 = iterators;\n\nvar ITERATOR$3 = wellKnownSymbol$7('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nvar isArrayIteratorMethod$1 = function (it) {\n return it !== undefined && (Iterators$1.Array === it || ArrayPrototype[ITERATOR$3] === it);\n};\n\nvar aFunction$3 = aFunction$4;\n\n// optional / simple context binding\nvar functionBindContext = function (fn, that, length) {\n aFunction$3(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\nvar wellKnownSymbol$6 = wellKnownSymbol$d;\n\nvar TO_STRING_TAG$2 = wellKnownSymbol$6('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG$2] = 'z';\n\nvar toStringTagSupport = String(test) === '[object z]';\n\nvar TO_STRING_TAG_SUPPORT = toStringTagSupport;\nvar classofRaw = classofRaw$1;\nvar wellKnownSymbol$5 = wellKnownSymbol$d;\n\nvar TO_STRING_TAG$1 = wellKnownSymbol$5('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nvar classof$4 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$1)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\nvar classof$3 = classof$4;\nvar Iterators = iterators;\nvar wellKnownSymbol$4 = wellKnownSymbol$d;\n\nvar ITERATOR$2 = wellKnownSymbol$4('iterator');\n\nvar getIteratorMethod$1 = function (it) {\n if (it != undefined) return it[ITERATOR$2]\n || it['@@iterator']\n || Iterators[classof$3(it)];\n};\n\nvar anObject$5 = anObject$b;\n\n// call something on iterator step with safe closing on error\nvar callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject$5(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject$5(returnMethod.call(iterator));\n throw error;\n }\n};\n\nvar anObject$4 = anObject$b;\nvar isArrayIteratorMethod = isArrayIteratorMethod$1;\nvar toLength = toLength$2;\nvar bind$2 = functionBindContext;\nvar getIteratorMethod = getIteratorMethod$1;\nvar callWithSafeIterationClosing = callWithSafeIterationClosing$1;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate$1 = iterate$2.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind$2(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject$4(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate$1.stop = function (result) {\n return new Result(true, result);\n};\n\nvar wellKnownSymbol$3 = wellKnownSymbol$d;\n\nvar ITERATOR$1 = wellKnownSymbol$3('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR$1] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nvar checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR$1] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\nvar anObject$3 = anObject$b;\nvar aFunction$2 = aFunction$4;\nvar wellKnownSymbol$2 = wellKnownSymbol$d;\n\nvar SPECIES$1 = wellKnownSymbol$2('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nvar speciesConstructor$1 = function (O, defaultConstructor) {\n var C = anObject$3(O).constructor;\n var S;\n return C === undefined || (S = anObject$3(C)[SPECIES$1]) == undefined ? defaultConstructor : aFunction$2(S);\n};\n\nvar getBuiltIn$1 = getBuiltIn$5;\n\nvar engineUserAgent = getBuiltIn$1('navigator', 'userAgent') || '';\n\nvar userAgent$1 = engineUserAgent;\n\nvar engineIsIos = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent$1);\n\nvar global$6 = global$i;\nvar fails$1 = fails$8;\nvar classof$2 = classofRaw$1;\nvar bind$1 = functionBindContext;\nvar html = html$2;\nvar createElement = documentCreateElement$1;\nvar IS_IOS$1 = engineIsIos;\n\nvar location = global$6.location;\nvar set = global$6.setImmediate;\nvar clear = global$6.clearImmediate;\nvar process$3 = global$6.process;\nvar MessageChannel = global$6.MessageChannel;\nvar Dispatch = global$6.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global$6.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof$2(process$3) == 'process') {\n defer = function (id) {\n process$3.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS$1) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind$1(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global$6.addEventListener &&\n typeof postMessage == 'function' &&\n !global$6.importScripts &&\n !fails$1(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global$6.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nvar task$1 = {\n set: set,\n clear: clear\n};\n\nvar global$5 = global$i;\nvar getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;\nvar classof$1 = classofRaw$1;\nvar macrotask = task$1.set;\nvar IS_IOS = engineIsIos;\n\nvar MutationObserver = global$5.MutationObserver || global$5.WebKitMutationObserver;\nvar process$2 = global$5.process;\nvar Promise$1 = global$5.Promise;\nvar IS_NODE$1 = classof$1(process$2) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global$5, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify$1, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE$1 && (parent = process$2.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify$1();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE$1) {\n notify$1 = function () {\n process$2.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify$1 = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise$1 && Promise$1.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise$1.resolve(undefined);\n then = promise.then;\n notify$1 = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify$1 = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global$5, flush);\n };\n }\n}\n\nvar microtask$1 = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify$1();\n } last = task;\n};\n\nvar newPromiseCapability$2 = {};\n\nvar aFunction$1 = aFunction$4;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction$1(resolve);\n this.reject = aFunction$1(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nnewPromiseCapability$2.f = function (C) {\n return new PromiseCapability(C);\n};\n\nvar anObject$2 = anObject$b;\nvar isObject$1 = isObject$7;\nvar newPromiseCapability$1 = newPromiseCapability$2;\n\nvar promiseResolve$1 = function (C, x) {\n anObject$2(C);\n if (isObject$1(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability$1.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\nvar global$4 = global$i;\n\nvar hostReportErrors$1 = function (a, b) {\n var console = global$4.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n\nvar perform$1 = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\nvar global$3 = global$i;\nvar userAgent = engineUserAgent;\n\nvar process$1 = global$3.process;\nvar versions = process$1 && process$1.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nvar engineV8Version = version && +version;\n\nvar $ = _export;\nvar global$2 = global$i;\nvar getBuiltIn = getBuiltIn$5;\nvar NativePromise = nativePromiseConstructor;\nvar redefine$1 = redefine$5.exports;\nvar redefineAll = redefineAll$1;\nvar setToStringTag = setToStringTag$3;\nvar setSpecies = setSpecies$1;\nvar isObject = isObject$7;\nvar aFunction = aFunction$4;\nvar anInstance = anInstance$1;\nvar classof = classofRaw$1;\nvar inspectSource = inspectSource$3;\nvar iterate = iterate$2.exports;\nvar checkCorrectnessOfIteration = checkCorrectnessOfIteration$1;\nvar speciesConstructor = speciesConstructor$1;\nvar task = task$1.set;\nvar microtask = microtask$1;\nvar promiseResolve = promiseResolve$1;\nvar hostReportErrors = hostReportErrors$1;\nvar newPromiseCapabilityModule = newPromiseCapability$2;\nvar perform = perform$1;\nvar InternalStateModule = internalState;\nvar isForced = isForced_1;\nvar wellKnownSymbol$1 = wellKnownSymbol$d;\nvar V8_VERSION = engineV8Version;\n\nvar SPECIES = wellKnownSymbol$1('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError$1 = global$2.TypeError;\nvar document$1 = global$2.document;\nvar process = global$2.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$2.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError$1('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document$1.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global$2.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global$2['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global$2, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global$2, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError$1(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine$1(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global$2, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\nvar anObject$1 = anObject$b;\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nvar regexpFlags = function () {\n var that = anObject$1(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\nvar redefine = redefine$5.exports;\nvar anObject = anObject$b;\nvar fails = fails$8;\nvar flags = regexpFlags;\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nvar domIterables = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\nvar global$1 = global$i;\nvar DOMIterables = domIterables;\nvar ArrayIteratorMethods = es_array_iterator;\nvar createNonEnumerableProperty = createNonEnumerableProperty$7;\nvar wellKnownSymbol = wellKnownSymbol$d;\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global$1[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nconst signTransactions = (transactions, signer, network) => __awaiter(void 0, void 0, void 0, function* () {\n const provider = new nearAPI.providers.JsonRpcProvider({\n url: network.nodeUrl\n });\n const signedTransactions = [];\n for (let i = 0; i < transactions.length; i++) {\n const publicKey = yield signer.getPublicKey(transactions[i].signerId, network.networkId);\n const [block, accessKey] = yield Promise.all([provider.block({\n finality: \"final\"\n }), provider.query({\n request_type: \"view_access_key\",\n finality: \"final\",\n account_id: transactions[i].signerId,\n public_key: publicKey.toString()\n })]);\n const actions = transactions[i].actions.map(action => createAction(action));\n const transaction = nearAPI.transactions.createTransaction(transactions[i].signerId, nearAPI.utils.PublicKey.from(publicKey.toString()), transactions[i].receiverId, accessKey.nonce + i + 1, actions, nearAPI.utils.serialize.base_decode(block.header.hash));\n const response = yield nearAPI.transactions.signTransaction(transaction, signer, transactions[i].signerId, network.networkId);\n signedTransactions.push(response[1]);\n }\n return signedTransactions;\n});\n\nexport { createAction, signTransactions };\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n/** @interface */\nfunction Decoder() {}\nDecoder.prototype = {\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point, or |finished|.\n */\n handler: function(stream, bite) {}\n};\n\n/** @interface */\nfunction Encoder() {}\nEncoder.prototype = {\n /**\n * @param {Stream} stream The stream of code points being encoded.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit, or |finished|.\n */\n handler: function(stream, code_point) {}\n};\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexport {TextEncoder, TextDecoder};\n","const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nfunction valid(uuid) {\n return uuidPattern.test(uuid);\n}\n\n// Based on https://abhishekdutta.org/blog/standalone_uuid_generator_in_javascript.html\n// IE11 and Modern Browsers Only\nfunction uuid4() {\n var temp_url = URL.createObjectURL(new Blob());\n var uuid = temp_url.toString();\n URL.revokeObjectURL(temp_url);\n return uuid.split(/[:\\/]/g).pop().toLowerCase(); // remove prefixes\n}\nuuid4.valid = valid;\n\nexport default uuid4;\nexport { uuid4, valid };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"abd36b29\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfrontend\"] = self[\"webpackChunkfrontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a