@dcl/explorer-website 0.0.1-20210725180645.commit-4fc506e → 0.0.1-2092132076.commit-1f3dcfd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset-manifest.json +29 -36
- package/images/background-v3@1x.jpg +0 -0
- package/images/background-v3@2x.jpg +0 -0
- package/images/background-v3@3x.jpg +0 -0
- package/images/background-v3@4x.jpg +0 -0
- package/images/background-v3@blur.jpg +0 -0
- package/images/loading.gif +0 -0
- package/index.html +1 -1
- package/package.json +3 -2
- package/static/css/2.961b2a44.chunk.css +363 -0
- package/static/css/2.961b2a44.chunk.css.map +1 -0
- package/static/css/main.a19e0121.chunk.css +2 -0
- package/static/css/main.a19e0121.chunk.css.map +1 -0
- package/static/js/2.a6fa193e.chunk.js +3 -0
- package/static/js/{3.aaf3136f.chunk.js.LICENSE.txt → 2.a6fa193e.chunk.js.LICENSE.txt} +63 -0
- package/static/js/2.a6fa193e.chunk.js.map +1 -0
- package/static/js/3.6802c324.chunk.js +2 -0
- package/static/js/{5.723d51d1.chunk.js.map → 3.6802c324.chunk.js.map} +1 -1
- package/static/js/main.7b14f453.chunk.js +2 -0
- package/static/js/main.7b14f453.chunk.js.map +1 -0
- package/static/js/runtime-main.60f22d48.js +2 -0
- package/static/js/runtime-main.60f22d48.js.map +1 -0
- package/static/media/background-v3@1x.f3aaf66f.jpg +0 -0
- package/static/media/background-v3@2x.06c72176.jpg +0 -0
- package/static/media/background-v3@3x.caac6619.jpg +0 -0
- package/static/media/background-v3@4x.26660308.jpg +0 -0
- package/static/media/banner-close.5ca92538.svg +5 -0
- package/static/media/brand-icons.278156e4.woff2 +0 -0
- package/static/media/brand-icons.65a2fb6d.ttf +0 -0
- package/static/media/brand-icons.6729d297.svg +1008 -0
- package/static/media/brand-icons.cac87dc0.woff +0 -0
- package/static/media/brand-icons.d68fa3e6.eot +0 -0
- package/static/media/flags.99f63ae7.png +0 -0
- package/static/media/guest.6eb48000.jpg +0 -0
- package/static/media/icons.38c6d8ba.woff2 +0 -0
- package/static/media/icons.425399f8.woff +0 -0
- package/static/media/icons.62d9dae4.svg +1518 -0
- package/static/media/icons.a01e3f2d.eot +0 -0
- package/static/media/icons.c656b8ca.ttf +0 -0
- package/static/media/outline-icons.53671035.ttf +0 -0
- package/static/media/outline-icons.687a4990.woff2 +0 -0
- package/static/media/outline-icons.752905fa.eot +0 -0
- package/static/media/outline-icons.9c4845b4.svg +366 -0
- package/static/media/outline-icons.ddae9b1b.woff +0 -0
- package/static/media/wallets.96b87835.jpg +0 -0
- package/static/css/main.ded3442b.chunk.css +0 -2
- package/static/css/main.ded3442b.chunk.css.map +0 -1
- package/static/js/2.12cb054e.chunk.js +0 -3
- package/static/js/2.12cb054e.chunk.js.LICENSE.txt +0 -43
- package/static/js/2.12cb054e.chunk.js.map +0 -1
- package/static/js/3.aaf3136f.chunk.js +0 -3
- package/static/js/3.aaf3136f.chunk.js.map +0 -1
- package/static/js/4.689c7a92.chunk.js +0 -2
- package/static/js/4.689c7a92.chunk.js.map +0 -1
- package/static/js/5.723d51d1.chunk.js +0 -2
- package/static/js/main.00c3c38b.chunk.js +0 -2
- package/static/js/main.00c3c38b.chunk.js.map +0 -1
- package/static/js/runtime-main.df5581dd.js +0 -2
- package/static/js/runtime-main.df5581dd.js.map +0 -1
- package/static/media/avatars.183d79bf.png +0 -0
- package/static/media/avatars@2x.fdd7a431.png +0 -0
- package/static/media/avatars@3x.71ab6dc8.png +0 -0
- package/static/media/background-secondary@1x.0b32ee63.jpg +0 -0
- package/static/media/background-secondary@2x.75be6684.jpg +0 -0
- package/static/media/background-secondary@3x.21961df0.jpg +0 -0
- package/static/media/background@1x.99e0eb84.jpg +0 -0
- package/static/media/background@2x.9146243d.jpg +0 -0
- package/static/media/background@3x.385b5203.jpg +0 -0
- package/static/media/dapper.0e5fcabf.png +0 -0
- package/static/media/error-robotdead.ac866adc.png +0 -0
- package/static/media/fortmatic.17a8d20a.svg +0 -6
- package/static/media/metamask.bb710fa5.svg +0 -31
- package/static/media/popup-close.2c492543.svg +0 -5
- package/static/media/samsung-blockchain-wallet.3f042de1.svg +0 -9
- package/static/media/wallet-connect.f9cb81fb.svg +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/react/index.js","../../../../lib/compile/codegen/index.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../../../lib/compile/util.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/classCallCheck.js","../../src/index.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/date-fns/parse/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createClass.js","../../../../lib/compile/validate/index.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../../../lib/compile/names.ts","../../../lib/vocabularies/code.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../../src/types.ts","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../../src/action.ts","../../src/utils.ts","../../src/create-action-with-type.ts","../../src/create-action.ts","../../src/create-standard-action.ts","../../src/create-async-action.ts","../../src/get-type.ts","../../src/is-of-type.ts","../../src/is-action-of.ts","../../src/create-action-deprecated.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/objectSpread2.js","../../src/validation.ts","../../../lib/compile/subschema.ts","../node_modules/redux/es/redux.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/shallow-equal/objects/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../../../../lib/compile/validate/dataType.ts","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../lib/compile/context.ts","../../../lib/compile/errors.ts","../../../lib/compile/resolve.ts","../node_modules/fast-deep-equal/index.js","../node_modules/react-dom/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/webpack/buildin/global.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../../../../lib/compile/codegen/code.ts","../../../lib/compile/error_classes.ts","../../src/configuration.ts","../node_modules/date-fns/start_of_iso_week/index.js","../node_modules/react-is/index.js","../node_modules/symbol-observable/es/index.js","../../../src/lib/eth.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/events/events.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/object-assign/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../../lib/compile/rules.ts","../../../../lib/compile/validate/applicability.ts","../../../../lib/compile/codegen/scope.ts","../../../src/util.ts","../../../src/regexps-uri.ts","../../../src/regexps-iri.ts","../../../node_modules/punycode/punycode.es6.js","../../../src/uri.ts","../../../src/schemes/http.ts","../../../src/schemes/https.ts","../../../src/schemes/ws.ts","../../../src/schemes/wss.ts","../../../src/schemes/mailto.ts","../../../src/schemes/urn.ts","../../../src/schemes/urn-uuid.ts","../../../src/index.ts","../../../lib/compile/index.ts","../../../../lib/vocabularies/applicator/additionalProperties.ts","../../../src/dapps/chain-id.ts","../../../src/dapps/chain-name.ts","../../../src/connectors/index.ts","../../../src/storage/Storage.ts","../node_modules/date-fns/is_date/index.js","../node_modules/date-fns/get_iso_year/index.js","../node_modules/date-fns/locale/en/index.js","../node_modules/symbol-observable/es/ponyfill.js","../../src/providers/common.ts","../../node_modules/fp-future/index.js","../../node_modules/rollup-plugin-node-globals/src/global.js","../../node_modules/process-es6/browser.js","../../node_modules/js-sha3/src/sha3.js","../../node_modules/bignumber.js/bignumber.js","../../src/utils/BigNumber.ts","../../src/utils/utf8.ts","../../src/utils/errors.ts","../../src/utils/utils.ts","../../src/Schema.ts","../../src/utils/jsonrpc.ts","../../src/utils/formatters.ts","../../src/utils/config.ts","../../src/methods/eth.ts","../../src/Method.ts","../../src/Property.ts","../../src/utils/sleep.ts","../../src/RequestManager.ts","../../src/abi/bytes.ts","../../src/abi/properties.ts","../../src/abi/constants.ts","../../src/abi/parser.ts","../../src/abi/coder.ts","../../src/solidity/coder.ts","../../src/SolidityFunction.ts","../../src/Filter.ts","../../src/SolidityEvent.ts","../../src/AllSolidityEvents.ts","../../src/Contract.ts","../../src/ContractFactory.ts","../../src/providers/HTTPProvider.ts","../../src/providers/WebSocketProvider.ts","../index.ts","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/redux-devtools-extension/index.js","../../src/ConnectionManager.ts","../node_modules/regenerator-runtime/runtime.js","../../lib/ajv.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/construct.js","../../../../lib/compile/validate/boolSchema.ts","../../../../lib/compile/validate/iterate.ts","../../../../lib/compile/validate/defaults.ts","../../../../lib/compile/validate/keyword.ts","../node_modules/@dcl/schemas/node_modules/json-schema-traverse/index.js","../../lib/core.ts","../../../lib/vocabularies/draft7.ts","../../../../lib/vocabularies/core/index.ts","../../../../lib/vocabularies/core/id.ts","../../../../lib/vocabularies/core/ref.ts","../../../../lib/vocabularies/validation/index.ts","../../../../lib/vocabularies/validation/limitNumber.ts","../../../../lib/vocabularies/validation/multipleOf.ts","../../../../lib/vocabularies/validation/limitLength.ts","../../../lib/compile/ucs2length.ts","../../../../lib/vocabularies/validation/pattern.ts","../../../../lib/vocabularies/validation/limitProperties.ts","../../../../lib/vocabularies/validation/required.ts","../../../../lib/vocabularies/validation/limitItems.ts","../../../../lib/vocabularies/validation/uniqueItems.ts","../../../../lib/vocabularies/validation/const.ts","../../../../lib/vocabularies/validation/enum.ts","../../../../lib/vocabularies/applicator/index.ts","../../../../lib/vocabularies/applicator/additionalItems.ts","../../../../lib/vocabularies/applicator/items.ts","../../../../lib/vocabularies/applicator/contains.ts","../../../../lib/vocabularies/applicator/dependencies.ts","../../../../lib/vocabularies/applicator/propertyNames.ts","../../../../lib/vocabularies/applicator/properties.ts","../../../../lib/vocabularies/applicator/patternProperties.ts","../../../../lib/vocabularies/applicator/not.ts","../../../../lib/vocabularies/applicator/anyOf.ts","../../../../lib/vocabularies/applicator/oneOf.ts","../../../../lib/vocabularies/applicator/allOf.ts","../../../../lib/vocabularies/applicator/if.ts","../../../../lib/vocabularies/applicator/thenElse.ts","../../../../lib/vocabularies/format/index.ts","../../../../lib/vocabularies/format/format.ts","../../../lib/vocabularies/metadata.ts","../../../src/dapps/network.ts","../../../src/dapps/meta-transactions.ts","../../../src/dapps/world.ts","../../../src/connectors/AbstractConnector.ts","../../../src/connectors/FortmaticConnector.ts","../../../src/connectors/InjectedConnector.ts","../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../../../src/connectors/NetworkConnector.ts","../../../src/connectors/WalletConnectConnector.ts","../../../src/storage/index.ts","../../../src/storage/LocalStorage.ts","../../src/ProviderAdapter.ts","../../../src/lib/utils.ts","../node_modules/date-fns/format/index.js","../node_modules/date-fns/get_day_of_year/index.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/start_of_year/index.js","../node_modules/date-fns/difference_in_calendar_days/index.js","../node_modules/date-fns/start_of_day/index.js","../node_modules/date-fns/get_iso_week/index.js","../node_modules/date-fns/start_of_week/index.js","../node_modules/date-fns/start_of_iso_year/index.js","../node_modules/date-fns/is_valid/index.js","../node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","../node_modules/date-fns/locale/en/build_format_locale/index.js","../node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","../node_modules/date-fns/distance_in_words_to_now/index.js","../node_modules/date-fns/distance_in_words/index.js","../node_modules/date-fns/compare_desc/index.js","../node_modules/date-fns/difference_in_seconds/index.js","../node_modules/date-fns/difference_in_milliseconds/index.js","../node_modules/date-fns/difference_in_months/index.js","../node_modules/date-fns/difference_in_calendar_months/index.js","../node_modules/date-fns/compare_asc/index.js","../../../../src/modules/translation/utils.ts","../node_modules/intl-messageformat-parser/lib/types.js","../node_modules/intl-messageformat-parser/lib/parser.js","../node_modules/intl-messageformat-parser/lib/normalize.js","../node_modules/intl-messageformat-parser/lib/index.js","../node_modules/intl-format-cache/lib/index.js","../node_modules/intl-messageformat-parser/lib/skeleton.js","../node_modules/intl-messageformat/lib/formatters.js","../node_modules/intl-messageformat/lib/core.js","../node_modules/intl-messageformat/lib/index.js","../../src/invariant.ts","../node_modules/react-intl/lib/utils.js","../node_modules/react-intl/lib/components/injectIntl.js","../node_modules/react-intl/lib/components/createFormattedComponent.js","../node_modules/react-intl/lib/components/useIntl.js","../node_modules/react-intl/lib/formatters/number.js","../node_modules/react-intl/lib/formatters/relativeTime.js","../node_modules/react-intl/lib/formatters/dateTime.js","../node_modules/react-intl/lib/formatters/plural.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react-intl/lib/formatters/message.js","../node_modules/react-intl/lib/formatters/list.js","../node_modules/react-intl/lib/formatters/displayName.js","../node_modules/react-intl/lib/components/provider.js","../node_modules/react-intl/lib/components/relative.js","../node_modules/react-intl/lib/components/plural.js","../node_modules/react-intl/lib/components/message.js","../node_modules/react-intl/lib/components/html-message.js","../node_modules/react-intl/lib/index.js"],"names":["module","exports","require","this","nodes","value","_","strings","raw","slice","Object","freeze","defineProperties","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","rules","instance","Constructor","TypeError","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","getTimezoneOffsetInMilliseconds","isDate","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","parseTokenDateTimeDelimeter","parseTokenPlainTime","parseTokenYY","parseTokensYYY","parseTokenYYYY","parseTokensYYYYY","parseTokenMM","parseTokenDDD","parseTokenMMDD","parseTokenWww","parseTokenWwwD","parseTokenHH","parseTokenHHMM","parseTokenHHMMSS","parseTokenTimezone","parseTokenTimezoneZ","parseTokenTimezoneHH","parseTokenTimezoneHHMM","dayOfISOYear","isoYear","week","day","date","Date","setUTCFullYear","diff","getUTCDay","setUTCDate","getUTCDate","argument","dirtyOptions","getTime","additionalDigits","Number","dateStrings","dateString","timeString","array","split","test","token","exec","time","replace","timezone","splitDateString","parseYearResult","parseTokenYYY","parseTokenYYYYY","yearString","year","parseInt","restDateString","centuryString","parseYear","month","dayOfYear","parseDate","offset","timestamp","hours","minutes","parseFloat","seconds","parseTime","timezoneString","absoluteOffset","parseTimezone","fullTime","fullTimeDate","fullTimeDateNextDay","setDate","getDate","offsetDiff","_defineProperties","props","descriptor","protoProps","staticProps","prototype","gen","asyncGeneratorStep","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","undefined","setPrototypeOf","subClass","superClass","create","constructor","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","result","Super","NewTarget","Reflect","construct","unsupportedIterableToArray","o","allowArrayLike","it","Symbol","iterator","Array","isArray","F","s","n","e","_e","f","normalCompletion","didErr","step","next","_e2","codegen_1","Name","default","cxt","_classCallCheck","_createClass","_getPrototypeOf","__proto__","_typeof","_possibleConstructorReturn","call","ReferenceError","_createSuper","sham","Proxy","toString","_setPrototypeOf","p","_inherits","ConnectorEvent","AbstractConnector","supportedChainIds","emitUpdate","emitError","emitDeactivate","ProviderType","ReactReduxContext","React","createContext","batch","callback","nullListeners","notify","createListenerCollection","first","last","clear","listener","get","listeners","subscribe","isSubscribed","prev","Subscription","store","parentSub","unsubscribe","handleChangeWrapper","bind","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","Provider","_ref","context","children","contextValue","useMemo","subscription","previousState","getState","useEffect","Context","createElement","_extends","assign","hasOwnProperty","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","useIsomorphicLayoutEffect","window","document","useLayoutEffect","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","state","action","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","current","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","type","initStateUpdates","connectAdvanced","selectorFactory","_ref2","_ref2$getDisplayName","getDisplayName","name","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","isContextConsumer","useContext","didStoreComeFromProps","dispatch","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","useRef","renderedWrappedComponent","ref","Connect","memo","forwarded","hoistStatics","is","x","y","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","options","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","match","factories","Error","strictEqual","a","b","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","newBatch","meta","idx","actionCreatorHandler","actionCreator","getType","t","actionType","actionResolverHandler","validateActionType","createActionWithType","map","requestType","successType","failureType","request","success","failure","creator","actionOrNil","assertFn","includes","creatorOrCreators","index","some","creatorFunction","arrayWithoutHoles","iterableToArray","nonIterableSpread","arr","randomString","Math","random","substring","join","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","splice","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","$$observable","getUndefinedStateErrorMessage","String","combineReducers","reducers","reducerKeys","finalReducers","process","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","_i","_key","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreators","boundActionCreators","compose","_len","funcs","reduce","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","concat","targetStatics","sourceStatics","aKeys","bKeys","len","arrayWithHoles","iterableToArrayLimit","nonIterableRest","types","dataType","COERCIBLE","checkDataTypes","prefix","invariant","condition","message","_arrayLikeToArray","arr2","countKeys","schema","add","equal","RegExp","flags","valueOf","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","_unsupportedIterableToArray","minLen","from","_slicedToArray","_arr","_n","_d","_s","g","Function","isNativeFunction","_wrapNativeSuper","Class","_cache","Map","has","set","Wrapper","arrayLikeToArray","code","startOfWeek","dirtyDate","weekStartsOn","root","global","ponyfill","ReflectOwnKeys","R","ReflectApply","receiver","NumberIsNaN","isNaN","EventEmitter","init","once","emitter","eventListener","errorListener","removeListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","prepend","m","events","existing","warning","newListener","emit","unshift","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","copy","RangeError","setMaxListeners","getMaxListeners","doError","er","handler","addListener","on","prependListener","prependOnceListener","list","position","originalListener","shift","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","superPropBase","_get","property","base","desc","propIsEnumerable","propertyIsEnumerable","toObject","val","test1","test2","fromCharCode","test3","letter","shouldUseNative","to","isJSONType","sets","xl","str","ALPHA$$","DIGIT$$","HEXDIG$$","merge","PCT_ENCODED$","subexp","SUB_DELIMS$$","RESERVED$$","isIRI","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","UNRESERVED$$","IPV6ADDRESS$","IP_LITERAL$","IPV6ADDRZ_RELAXED$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","IPV4ADDRESS$","buildExps","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","stringFromCharCode","parts","string","output","counter","extra","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","k","firstTime","delta","decode","inputLength","input","bias","basic","j","oldi","baseMinusT","out","encode","ucs2decode","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","toUnicode","mapDomain","toASCII","punycode","SCHEMES","c","chr","newStr","il","c2","c3","decodeUnreserved","decStr","pctDecChars","protocol","components","matches","host","address","zone","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","_normalizeIPv4","longestZeroFields","field","lastLongest","acc","sort","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","_normalizeIPv6","schemeHandler","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","im","authority","_recomposeAuthority","removeDotSegments","parse","serialize","relative","schemelessOptions","scheme","resolveComponents","uri","typeOf","uriA","uriB","IRI_PROTOCOL","URI_PROTOCOL","secure","http","wsComponents","isSecure","path","query","ws","O","ATEXT$$","VCHAR$$","SOME_DELIMS$$","UNRESERVED","PCT_ENCODED","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","unescapeComponent","addr","toArray","toAddr","atIdx","localPart","domain","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","if","ChainId","ChainName","startOfISOWeek","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","setHours","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","buildDistanceInWordsLocale","buildFormatLocale","distanceInWords","format","symbolObservablePonyfill","toRPC","jsonrpc","id","JSON","stringify","method","trim","params","future","resolver","rejecter","promise","ok","isPending","catch","finally","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","Item","noop","performance","performanceNow","now","mozNow","msNow","oNow","webkitNow","startTime","nextTick","title","browser","env","argv","version","versions","binding","cwd","chdir","dir","umask","hrtime","previousTimestamp","clocktime","nanoseconds","platform","release","config","uptime","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","node","COMMON_JS","JS_SHA3_NO_COMMON_JS","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","ArrayBuffer","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","128","256","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","isView","buffer","createOutputMethod","bits","padding","outputType","Keccak","update","createShakeOutputMethod","outputBits","createCshakeOutputMethod","methods","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","algorithm","newMethodName","blocks","reset","finalized","block","start","blockCount","byteCount","outputBlocks","extraBytes","notString","Uint8Array","charCodeAt","lastByteIndex","right","bytes","encodeString","strs","paddingBytes","zeros","finalize","hex","arrayBuffer","Uint32Array","digest","h","l","c0","c1","c4","c5","c6","c7","c8","c9","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","globalObject","BigNumber","isNumeric","mathceil","ceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","z","r","xc","yc","intCheck","min","max","isOdd","toExponential","charAt","toFixedPoint","zs","clone","configObject","div","convertBase","parseNumeric","pow2_53","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","P","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","v","alphabet","caseChanged","isNum","_isBigNumber","search","round","DEBUG","toUpperCase","toLowerCase","rm","ne","maxOrMin","normalise","sd","d","ni","rd","pows10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","lt","minimum","gt","dp","rand","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","sign","callerIsToString","pow","multiply","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","subtract","more","prod","prodL","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","NaN","p1","p2","absoluteValue","abs","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","isInteger","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","isGreaterThanOrEqualTo","gte","isLessThan","isLessThanOrEqualTo","lte","isNegative","isPositive","isZero","minus","xLTy","xe","ye","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","g1","g2","intPart","fractionPart","isNeg","intDigits","substr","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","toJSON","ETH_BIGNUMBER_ROUNDING_MODE","stringToUtf8Bytes","TextEncoder","bytesToUtf8String","bytesOrHexString","hexToBytes","TextDecoder","INVALID_ARGUMENT","messageDetails","reason","char","bytesToHex","padStart","sha3","encoding","mutValue","keccak256","TransactionStatus","TransactionType","unitMap","noether","wei","kwei","Kwei","babbage","femtoether","mwei","Mwei","lovelace","picoether","gwei","Gwei","shannon","nanoether","nano","szabo","microether","micro","finney","milliether","milli","ether","kether","grand","mether","gether","tether","padLeft","chars","transformToFullName","json","isObject","_flattenTypes","inputs","concatBytes","buffers","$","buf","mergedArray","cursor","includeTuple","puts","param","arrayBracket","extractDisplayName","stBracket","endBracket","extractTypeName","toNullDecimal","toBigNumber","toDecimal","toData","startsWith","toHex","toBoolean","fromDecimal","num","isBoolean","isString","valStr","getValueOfUnit","_unit","unit","unitValue","_num","bitMask","fill","toTwosComplement","bigNumber","signedIsNegative","getAddress","errors.error","errors.INVALID_ARGUMENT","toChecksumAddress","fromTwosComplement","mask","isStrictAddress","isAddress","isChecksumAddress","_address","addressHash","checksumAddress","toAddress","toJsonRpcRequest","messageId","isValidResponse","response","every","validateSingleMessage","outputBigNumberFormatter","utils.toBigNumber","inputDefaultBlockNumberFormatter","blockNumber","inputBlockNumberFormatter","utils.toHex","inputCallFormatter","inputAddressFormatter","gasPrice","utils.fromDecimal","gas","nonce","data","inputTransactionId","txId","inputTransactionFormatter","outputTransactionFormatter","tx","utils.toDecimal","transactionIndex","outputTransactionReceiptFormatter","receipt","cumulativeGasUsed","gasUsed","logs","utils.isArray","log","outputLogFormatter","status","outputBlockFormatter","gasLimit","size","number","difficulty","totalDifficulty","transactions","item","ix","utils.isString","logIndex","utils.isStrictAddress","utils.isAddress","inputFilterOptions","outputSyncingFormatter","startingBlock","currentBlock","highestBlock","knownStates","pulledStates","eth","Method","[object Object]","callName","inputFormatter","outputFormatter","given","expected","formatter","formatInput","validateArgs","requestManager","toPayload","sendAsync","formatOutput","Property","getter","sleep","ms","utils.toArray","inject","propertyKey","execute","formatters.inputAddressFormatter","formatters.inputDefaultBlockNumberFormatter","formatters.outputBigNumberFormatter","utils.toData","formatters.inputBlockNumberFormatter","formatters.outputBlockFormatter","formatters.inputTransactionId","formatters.outputTransactionFormatter","formatters.outputTransactionReceiptFormatter","formatters.inputTransactionFormatter","formatters.inputCallFormatter","utils.toBoolean","utils.toAddress","formatters.outputSyncingFormatter","utils.toString","utils.toNullDecimal","formatters.inputFilterOptions","RequestManager","provider","defer","requests","delete","waitForCompletion","isFailure","retriesOnEmpty","txIdString","isTxDropped","getTransactionAndReceipt","failed","confirmed","currentNonce","hash","eth_accounts","account","eth_getTransactionCount","eth_getTransactionByHash","replaced","queued","pending","eth_getTransactionReceipt","reverted","_retryAttemps","retryAttemps","all","addSlice","arrayify","defineReadOnly","__decorate","NegativeOne","Zero","One","MaxUint256","parseParamType","allowIndexed","throwError","parent","allowType","allowParams","verifyType","indexed","child","allowName","allowArray","sibling","readArray","paramTypeBytes","paramTypeNumber","paramTypeArray","defaultCoerceFunc","Coder","coerceFunc","dynamic","localName","CoderAnonymous","coder","super","CoderNull","_value","consumed","maskn","CoderNumber","signed","bounds","coderType","twosComplement","twosComplement16","pad","junkLength","uint256Coder","_type","CoderFixedBytes","details","_encodeDynamicBytes","dataLength","_decodeDynamicBytes","alignSize","pack","coders","values","arrayValues","staticSize","dynamicSize","part","dynamicOffset","Tuple","CoderArray","expectedCount","decodedLength","baseOffset","CoderTuple","paramTypeSimple","inputAddress","missingBytes","bool","function","getParamCoder","newParam","fullType","ethersAbiCoder","kind","AbiCoder","outputs","utils.hexToBytes","SolidityFunction","_inputTypes","_outputTypes","_constant","_payable","payable","stateMutability","needsToBeTransaction","_name","utils.transformToFullName","utils.isObject","inputArgs","utils.isBigNumber","signature","encodeParams","utils.sha3","encodedOutput","decodeParams","eth_sendTransaction","defaultBlock","extractDefaultBlock","eth_call","unpackOutput","eth_estimateGas","utils.extractDisplayName","utils.extractTypeName","contract","estimateGas","typeName","toTopic","strValue","utils.bytesToHex","AbstractFilter","isDisposed","callbacks","isStarted","getNewFilter","filterId","stopSemaphore","poll","uninstall","getChanges","cb","EthFilter","topics","topic","fromBlock","toBlock","eth_getFilterLogs","eth_newFilter","eth_getFilterChanges","eth_uninstallFilter","SolidityEvent","_params","_anonymous","anonymous","indexedTopics","indexedData","indexedParams","notIndexedData","notIndexedParams","formatters.outputLogFormatter","event","AllSolidityEvents","_requestManager","_json","eventTopic","filterOptions","Contract","abi","attachToContract","allEvents","getAllEventsFunction","async","receiptFuture","fetcher","blockHash","eth_getCode","contractAddress","at","transactionHash","eth_newBlockFilter","eth_newPendingTransactionFilter","toSend","fetch","body","Content-Type","debug","shh_getMessages","shh_newFilter","shh_getFilterChanges","shh_uninstallFilter","url","Set","connect","connection","close","didFinish","responseCallbacks","send","returnValues","chunk","lastChunk","lastChunkTimeout","notificationCallbacks","timeoutError","ctor","WebSocketConstructor","WebSocket","onopen","onerror","theError","onclose","onmessage","parseResponse","processMessage","padEnd","returnValue","bloom","messages","for","u","A","B","C","encodeURIComponent","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","refs","updater","G","H","isReactComponent","setState","forceUpdate","I","isPureReactComponent","J","K","L","__self","__source","M","$$typeof","_owner","Q","keyPrefix","func","S","T","U","V","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useDebugValue","useImperativeHandle","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttribute","setAttributeNS","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","getValue","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","defaultValue","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","style","animation","transition","Xb","Yb","Zb","$b","ac","bc","WeakMap","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","container","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","addEventListener","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","setProperty","nd","menuitem","area","br","col","embed","hr","img","keygen","link","track","wbr","od","pd","qd","td","ud","vd","nextSibling","wd","contains","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","location","href","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","ee","eventPool","fe","destructor","de","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","me","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","re","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","ue","we","color","datetime","email","password","range","tel","text","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","end","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","repeat","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","documentElement","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","hi","pendingContext","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","ti","ui","vi","wi","yi","zi","Ai","stack","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","Ri","insertBefore","_reactRootContainer","Si","Ti","display","Ui","Vi","Wi","Xi","element","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","originalModule","webpackPolyfill","__esModule","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","devToolsEnhancer","__REDUX_DEVTOOLS_EXTENSION__","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","iter","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","assertThisInitialized","_construct","Parent","boolError","$async","group","traverse","opts","_traverse","pre","post","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","arrayKeywords","propsKeywords","prop","keywords","allKeys","skipKeywords","additionalItems","items","additionalProperties","propertyNames","not","else","allOf","anyOf","$defs","definitions","properties","patternProperties","enum","const","required","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","draft7Vocabularies","core","def","keyword","schemaType","getValidate","validation","missing","applicator","validate_1","checkStrictMode","schArr","additionalProperties_1","validatePatternProperties","apiKeys","chainIdToNetwork","FortmaticConnector","apiKey","chainId","accounts","fortmatic","Fortmatic","deactivate","_catch","recover","sendReturn","NoEthereumProviderError","UserRejectedRequestError","InjectedConnector","handleChainChanged","ethereum","handleAccountsChanged","handleClose","handleNetworkChanged","parseSendReturn","RequestError","MiniRpcProvider","parsed","NetworkConnector","urls","defaultChainId","accumulator","changeChainId","URI_AVAILABLE","getSupportedChains","rpc","WalletConnectConnector","handleDisconnect","connected","walletConnectProvider","WalletConnectProvider","LocalStorage","getDayOfYear","getISOWeek","getISOYear","isValid","enLocale","formatters","getMonth","addLeadingZeros","getDay","getHours","getMinutes","getSeconds","getMilliseconds","formatTimezone","getTimezoneOffset","removeFormattingTokens","delimeter","absOffset","targetLength","dirtyFormatStr","formatStr","localeFormatters","formattingTokensRegExp","buildFormatFn","formatFn","startOfYear","differenceInCalendarDays","baseTimezoneOffset","setSeconds","cleanDate","startOfDay","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","startOfISOYear","fourthOfJanuary","distanceInWordsLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","localize","addSuffix","comparison","buildFormattingTokensRegExp","months3char","monthsFull","weekdays2char","weekdays3char","weekdaysFull","meridiemUppercase","meridiemLowercase","meridiemFull","formatterToken","rem100","ordinal","commonFormatterKeys","formatterKeys","formattingTokens","compareDesc","differenceInSeconds","differenceInMonths","MINUTES_IN_MONTH","dirtyDateToCompare","dateLeft","dateRight","localizeOptions","months","includeSeconds","monthsSinceStartOfYear","years","timeLeft","timeRight","differenceInMilliseconds","differenceInCalendarMonths","compareAsc","difference","setMonth","TYPE","isLiteralElement","el","literal","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","plural","isPoundElement","pound","isNumberSkeleton","isDateTimeSkeleton","__extends","extendStatics","__","__assign","SyntaxError","_super","found","_this","captureStackTrace","buildMessage","literalEscape","classEscape","describeExpectation","expectation","escapedParts","inverted","description","expected1","descriptions","describeExpected","found1","pegParse","peg$result","peg$FAILED","peg$startRuleFunctions","peg$parsestart","peg$startRuleFunction","peg$c3","peg$literalExpectation","peg$c5","peg$otherExpectation","peg$c6","peg$c7","peg$c8","peg$c9","peg$c11","peg$c12","peg$c13","peg$classExpectation","peg$c14","peg$c15","peg$c17","peg$c19","peg$c22","peg$c23","peg$c26","messageCtx","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","insertLocation","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c53","peg$c54","peg$c57","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c71","peg$c74","peg$c75","peg$c76","peg$c79","isInPluralOption","peg$c81","peg$c83","peg$c84","peg$c86","peg$c88","peg$c89","peg$c90","peg$c91","peg$c93","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$computeLocation","location1","peg$buildSimpleError","text1","ignoreCase","peg$computePosDetails","pos","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$buildStructuredError","peg$parsemessage","s0","s1","peg$parsemessageElement","peg$parsemessageText","messageText","peg$parseliteralElement","s3","s5","peg$parse_","peg$parseargNameOrNumber","peg$parseargumentElement","s7","s9","s10","s11","s12","s2","peg$parsenumberSkeletonToken","tokens","peg$parsenumberSkeleton","peg$parsenumberArgStyle","peg$parsenumberFormatElement","peg$parsedateTimeSkeletonLiteral","peg$parsedateTimeSkeletonPattern","peg$parsedateTimeSkeleton","peg$parsedateOrTimeArgStyle","peg$parsedateOrTimeFormatElement","peg$parsesimpleFormatElement","s13","s14","s15","peg$parsenumber","peg$parsepluralOption","pluralType","_a","optionLocation","peg$c52","peg$parsepluralElement","peg$parseselectOption","peg$c55","peg$parseselectElement","peg$parsepoundElement","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","peg$parsenumberSkeletonId","s4","peg$parsewhiteSpace","peg$parsenumberSkeletonTokenOption","stem","peg$c20","s6","peg$parseargName","peg$parsepluralRuleSelectValue","peg$parsepatternSyntax","negative","peg$parseargNumber","peg$parseescapedChar","captureLocation","__spreadArrays","jl","PLURAL_HASHTAG_REGEX","normalizeHashtagInPlural","els","opt","matchingLiteralElIndex","literalEl","el_1","newValue","newEls","getCacheId","memoizeFormatConstructor","FormatConstructor","cache","cacheId","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","parseSignificantPrecision","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseNotationOptions","signOpts","convertNumberSkeletonToNumberFormatOptions","tokens_1","currency","useGrouping","maximumFractionDigits","notation","compactDisplay","currencyDisplay","unitDisplay","minimumFractionDigits","domParser","FormatError","msg","variableId","formatToParts","locales","formats","currentPluralValue","originalMessage","els_1","getNumberFormat","varName","getDateTimeFormat","Intl","PluralRules","rule","getPluralRules","lastPart","TOKEN_REGEX","restoreRichPlaceholderMessage","objectParts","SIMPLE_XML_REGEX","TEMPLATE_ID","VOID_ELEMENTS","formatHTMLElement","outerHTML","childNodes","isVoidElement","formatFnOrValue","chunks","formatHTMLMessage","formattedMessage","DOMParser","content","parseFromString","getElementById","tagsToFormat","getElementsByTagName","caseSensitiveTags","mergeConfigs","defaultConfig","configs","IntlMessageFormat","overrideFormats","defaultLocale","formatterCache","dateTime","pluralRules","formatToString","ast","resolvedOptions","NumberFormat","supportedLocalesOf","getAst","__parse","memoizeIntlConstructor","DateTimeFormat","percent","short","medium","long","full","ESCAPED_CHARS","UNSAFE_CHARS_REGEX","filterProps","whitelist","defaults","filtered","invariantIntlContext","intl","createError","eMsg","DEFAULT_INTL_CONFIG","timeZone","textComponent","defaultFormats","createIntlCache","relativeTime","displayNames","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","hoistNonReactStatics_","IntlContext","IntlConsumer","injectIntl","intlPropName","enforceContext","WithIntl","forwardedRef","DisplayName","DisplayNameParts","__rest","FormattedNumberParts","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","useIntl","NUMBER_FORMAT_OPTIONS","getFormatter","filteredOptions","formatNumber","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","DATE_TIME_FORMAT_OPTIONS","formatDate","formatTime","PLURAL_FORMAT_OPTIONS","formatPlural","_toConsumableArray","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","prepareIntlMessageFormatHtmlOutput","formatMessage","messageDescriptor","defaultMessage","formattedMessageParts","rawValues","escapedValues","escaped","LIST_FORMAT_OPTIONS","generateToken","formatList","richValues","serializedValues","DISPLAY_NAMES_OPTONS","formatDisplayName","shallowEquals","shallowEquals_","processIntlConfig","createIntl","resolvedConfig","IntlProvider","prevConfig","HOUR","selectUnit","absValue","getDurationInSeconds","valueToSeconds","INCREMENTABLE_UNITS","canIncrement","FormattedRelativeTime","_updateTimer","prevUnit","prevValue","currentValueInSeconds","updateIntervalInSeconds","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","scheduleNextUpdate","currentUnit","formattedRelativeTime","FormattedPlural","formattedPlural","withIntl","defaultFormatMessage","FormattedMessage","nextProps","otherProps","nextValues","nextOtherProps","FormattedHTMLMessage","formattedHTMLMessage","html","defineMessages","msgs","FormattedDate","FormattedTime","FormattedNumber","FormattedList","FormattedDisplayName","FormattedDateParts","FormattedTimeParts"],"mappings":"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","file":"static/js/3.aaf3136f.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\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))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n 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;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\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 getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\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) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n code_1.addCodeArg(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, code_1._ `${arr}.length`, (i) => {\n this.var(name, code_1._ `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, code_1._ `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 // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n 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 // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n 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 // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\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 _elseNode(node) {\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 get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : code_1._ `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : code_1._ `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : code_1._ `(${x})`;\n}\n//# sourceMappingURL=index.js.map","function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nmodule.exports = _taggedTemplateLiteral;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.func = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validate_1 = require(\"./validate\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strict)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n validate_1.checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return codegen_1._ `${schema}`;\n }\n return codegen_1._ `${topSchemaRef}${schemaPath}${codegen_1.getProperty(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if(codegen_1._ `${to} !== true && ${from} !== undefined`, () => {\n gen.if(codegen_1._ `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, codegen_1._ `${to} || {}`).code(codegen_1._ `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if(codegen_1._ `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, codegen_1._ `${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) => gen.if(codegen_1._ `${to} !== true && ${from} !== undefined`, () => gen.assign(to, codegen_1._ `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if(codegen_1._ `${to} !== true`, () => gen.assign(to, from === true ? true : codegen_1._ `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", codegen_1._ `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign(codegen_1._ `${props}${codegen_1.getProperty(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nfunction func(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: f.code,\n });\n}\nexports.func = func;\n//# sourceMappingURL=util.js.map","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","import { ConnectorUpdate } from '@web3-react/types'\nimport { AbstractConnector } from '@web3-react/abstract-connector'\nimport { IWalletConnectProviderOptions } from '@walletconnect/types'\n\nexport const URI_AVAILABLE = 'URI_AVAILABLE'\n\nexport interface WalletConnectConnectorArguments extends IWalletConnectProviderOptions {\n supportedChainIds?: number[]\n}\n\nexport class UserRejectedRequestError extends Error {\n public constructor() {\n super()\n this.name = this.constructor.name\n this.message = 'The user rejected the request.'\n }\n}\n\nfunction getSupportedChains({ supportedChainIds, rpc }: WalletConnectConnectorArguments): number[] | undefined {\n if (supportedChainIds) {\n return supportedChainIds\n }\n\n return rpc ? Object.keys(rpc).map(k => Number(k)) : undefined\n}\n\nexport class WalletConnectConnector extends AbstractConnector {\n private readonly config: WalletConnectConnectorArguments\n\n public walletConnectProvider?: any\n\n constructor(config: WalletConnectConnectorArguments) {\n super({ supportedChainIds: getSupportedChains(config) })\n\n this.config = config\n\n this.handleChainChanged = this.handleChainChanged.bind(this)\n this.handleAccountsChanged = this.handleAccountsChanged.bind(this)\n this.handleDisconnect = this.handleDisconnect.bind(this)\n }\n\n private handleChainChanged(chainId: number | string): void {\n if (__DEV__) {\n console.log(\"Handling 'chainChanged' event with payload\", chainId)\n }\n this.emitUpdate({ chainId })\n }\n\n private handleAccountsChanged(accounts: string[]): void {\n if (__DEV__) {\n console.log(\"Handling 'accountsChanged' event with payload\", accounts)\n }\n this.emitUpdate({ account: accounts[0] })\n }\n\n private handleDisconnect(): void {\n if (__DEV__) {\n console.log(\"Handling 'disconnect' event\")\n }\n this.emitDeactivate()\n // we have to do this because of a @walletconnect/web3-provider bug\n if (this.walletConnectProvider) {\n this.walletConnectProvider.stop()\n this.walletConnectProvider.removeListener('chainChanged', this.handleChainChanged)\n this.walletConnectProvider.removeListener('accountsChanged', this.handleAccountsChanged)\n this.walletConnectProvider = undefined\n }\n\n this.emitDeactivate()\n }\n\n public async activate(): Promise<ConnectorUpdate> {\n if (!this.walletConnectProvider) {\n const WalletConnectProvider = await import('@walletconnect/web3-provider').then(m => m?.default ?? m)\n this.walletConnectProvider = new WalletConnectProvider(this.config)\n }\n\n // ensure that the uri is going to be available, and emit an event if there's a new uri\n if (!this.walletConnectProvider.wc.connected) {\n await this.walletConnectProvider.wc.createSession({\n chainId: this.supportedChainIds && this.supportedChainIds.length > 0 ? this.supportedChainIds[0] : 1\n })\n this.emit(URI_AVAILABLE, this.walletConnectProvider.wc.uri)\n }\n\n const account = await this.walletConnectProvider\n .enable()\n .then((accounts: string[]): string => accounts[0])\n .catch((error: Error): void => {\n // TODO ideally this would be a better check\n if (error.message === 'User closed modal') {\n throw new UserRejectedRequestError()\n }\n\n throw error\n })\n\n this.walletConnectProvider.on('disconnect', this.handleDisconnect)\n this.walletConnectProvider.on('chainChanged', this.handleChainChanged)\n this.walletConnectProvider.on('accountsChanged', this.handleAccountsChanged)\n\n return { provider: this.walletConnectProvider, account }\n }\n\n public async getProvider(): Promise<any> {\n return this.walletConnectProvider\n }\n\n public async getChainId(): Promise<number | string> {\n return this.walletConnectProvider.send('eth_chainId')\n }\n\n public async getAccount(): Promise<null | string> {\n return this.walletConnectProvider.send('eth_accounts').then((accounts: string[]): string => accounts[0])\n }\n\n public deactivate() {\n if (this.walletConnectProvider) {\n this.walletConnectProvider.stop()\n this.walletConnectProvider.removeListener('disconnect', this.handleDisconnect)\n this.walletConnectProvider.removeListener('chainChanged', this.handleChainChanged)\n this.walletConnectProvider.removeListener('accountsChanged', this.handleAccountsChanged)\n }\n }\n\n public async close() {\n await this.walletConnectProvider?.close()\n }\n}\n","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","var getTimezoneOffsetInMilliseconds = require('../_lib/getTimezoneOffsetInMilliseconds/index.js')\nvar isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n if (isDate(argument)) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument !== 'string') {\n return new Date(argument)\n }\n\n var options = dirtyOptions || {}\n var additionalDigits = options.additionalDigits\n if (additionalDigits == null) {\n additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n } else {\n additionalDigits = Number(additionalDigits)\n }\n\n var dateStrings = splitDateString(argument)\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n var year = parseYearResult.year\n var restDateString = parseYearResult.restDateString\n\n var date = parseDate(restDateString, year)\n\n if (date) {\n var timestamp = date.getTime()\n var time = 0\n var offset\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time)\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone) * MILLISECONDS_IN_MINUTE\n } else {\n var fullTime = timestamp + time\n var fullTimeDate = new Date(fullTime)\n\n offset = getTimezoneOffsetInMilliseconds(fullTimeDate)\n\n // Adjust time when it's coming from DST\n var fullTimeDateNextDay = new Date(fullTime)\n fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1)\n var offsetDiff =\n getTimezoneOffsetInMilliseconds(fullTimeDateNextDay) -\n getTimezoneOffsetInMilliseconds(fullTimeDate)\n if (offsetDiff > 0) {\n offset += offsetDiff\n }\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(argument)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {}\n var array = dateString.split(parseTokenDateTimeDelimeter)\n var timeString\n\n if (parseTokenPlainTime.test(array[0])) {\n dateStrings.date = null\n timeString = array[0]\n } else {\n dateStrings.date = array[0]\n timeString = array[1]\n }\n\n if (timeString) {\n var token = parseTokenTimezone.exec(timeString)\n if (token) {\n dateStrings.time = timeString.replace(token[1], '')\n dateStrings.timezone = token[1]\n } else {\n dateStrings.time = timeString\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var parseTokenYYY = parseTokensYYY[additionalDigits]\n var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n var token\n\n // YYYY or ±YYYYY\n token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n if (token) {\n var yearString = token[1]\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n if (token) {\n var centuryString = token[1]\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token\n var date\n var month\n var week\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0)\n date.setUTCFullYear(year)\n return date\n }\n\n // YYYY-MM\n token = parseTokenMM.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n date.setUTCFullYear(year, month)\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = parseTokenDDD.exec(dateString)\n if (token) {\n date = new Date(0)\n var dayOfYear = parseInt(token[1], 10)\n date.setUTCFullYear(year, 0, dayOfYear)\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = parseTokenMMDD.exec(dateString)\n if (token) {\n date = new Date(0)\n month = parseInt(token[1], 10) - 1\n var day = parseInt(token[2], 10)\n date.setUTCFullYear(year, month, day)\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = parseTokenWww.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n return dayOfISOYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = parseTokenWwwD.exec(dateString)\n if (token) {\n week = parseInt(token[1], 10) - 1\n var dayOfWeek = parseInt(token[2], 10) - 1\n return dayOfISOYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token\n var hours\n var minutes\n\n // hh\n token = parseTokenHH.exec(timeString)\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = parseTokenHHMM.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseFloat(token[2].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE\n }\n\n // hh:mm:ss or hhmmss\n token = parseTokenHHMMSS.exec(timeString)\n if (token) {\n hours = parseInt(token[1], 10)\n minutes = parseInt(token[2], 10)\n var seconds = parseFloat(token[3].replace(',', '.'))\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token\n var absoluteOffset\n\n // Z\n token = parseTokenTimezoneZ.exec(timezoneString)\n if (token) {\n return 0\n }\n\n // ±hh\n token = parseTokenTimezoneHH.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = parseTokenTimezoneHHMM.exec(timezoneString)\n if (token) {\n absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n week = week || 0\n day = day || 0\n var date = new Date(0)\n date.setUTCFullYear(isoYear, 0, 4)\n var fourthOfJanuaryDay = date.getUTCDay() || 7\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n date.setUTCDate(date.getUTCDate() + diff)\n return date\n}\n\nmodule.exports = parse\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.schemaCxtHasRules = exports.subschemaCode = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst iterate_1 = require(\"./iterate\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => boolSchema_1.topBoolOrEmptySchema(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, codegen_1._ `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code(codegen_1._ `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, codegen_1._ `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return codegen_1._ `{${names_1.default.dataPath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? codegen_1._ `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.dataPath, codegen_1._ `${names_1.default.valCxt}.${names_1.default.dataPath}`);\n gen.var(names_1.default.parentData, codegen_1._ `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, codegen_1._ `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, codegen_1._ `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, codegen_1._ `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.dataPath, codegen_1._ `\"\"`);\n gen.var(names_1.default.parentData, codegen_1._ `undefined`);\n gen.var(names_1.default.parentDataProperty, codegen_1._ `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, codegen_1._ `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\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\", codegen_1._ `${validateName}.evaluated`);\n gen.if(codegen_1._ `${it.evaluated}.dynamicProps`, () => gen.assign(codegen_1._ `${it.evaluated}.props`, codegen_1._ `undefined`));\n gen.if(codegen_1._ `${it.evaluated}.dynamicItems`, () => gen.assign(codegen_1._ `${it.evaluated}.items`, codegen_1._ `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n return typeof schema == \"object\" && schema.$id && (opts.code.source || opts.code.process)\n ? codegen_1._ `/*# sourceURL=${schema.$id} */`\n : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n boolSchema_1.boolOrEmptySchema(it, valid);\n}\nexports.subschemaCode = subschemaCode;\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nexports.schemaCxtHasRules = schemaCxtHasRules;\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsync(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, codegen_1._ `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n util_1.checkUnknownRules(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return iterate_1.schemaKeywords(it, [], false, errsCount);\n const types = dataType_1.getSchemaTypes(it.schema);\n const checkedTypes = dataType_1.coerceAndCheckDataType(it, types);\n iterate_1.schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && util_1.schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strict) {\n checkStrictMode(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n if (it.schema.$id)\n it.baseId = resolve_1.resolveUrl(it.baseId, it.schema.$id);\n}\nfunction checkAsync(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code(codegen_1._ `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = codegen_1.str `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code(codegen_1._ `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(codegen_1._ `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw(codegen_1._ `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign(codegen_1._ `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return(codegen_1._ `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign(codegen_1._ `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign(codegen_1._ `${evaluated}.items`, items);\n}\nfunction checkStrictMode(it, msg, mode = it.opts.strict) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=index.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"),\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"),\n dataPath: new codegen_1.Name(\"dataPath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"),\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"),\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"),\n errors: new codegen_1.Name(\"errors\"),\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst subschema_1 = require(\"../compile/subschema\");\nconst names_1 = require(\"../compile/names\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: codegen_1._ `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return codegen_1.or(...properties.map((prop) => codegen_1.and(noPropertyInData(gen, data, prop, opts.ownProperties), codegen_1._ `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: codegen_1._ `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return codegen_1._ `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = codegen_1._ `${data}${codegen_1.getProperty(property)} !== undefined`;\n return ownProperties ? codegen_1._ `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = codegen_1._ `${data}${codegen_1.getProperty(property)} === undefined`;\n return ownProperties ? codegen_1.or(cond, codegen_1.not(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !util_1.alwaysValidSchema(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? codegen_1._ `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.dataPath, codegen_1.strConcat(names_1.default.dataPath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = codegen_1._ `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? codegen_1._ `${func}.call(${context}, ${args})` : codegen_1._ `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nfunction usePattern(gen, pattern) {\n return gen.scopeValue(\"pattern\", {\n key: pattern,\n ref: new RegExp(pattern, \"u\"),\n code: codegen_1._ `new RegExp(${pattern}, \"u\")`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\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 function validateItems(notValid) {\n const len = gen.const(\"len\", codegen_1._ `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: subschema_1.Type.Num,\n }, valid);\n gen.if(codegen_1.not(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => util_1.alwaysValidSchema(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, codegen_1._ `${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)\n gen.if(codegen_1.not(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProviderType = void 0;\nvar ProviderType;\n(function (ProviderType) {\n ProviderType[\"INJECTED\"] = \"injected\";\n ProviderType[\"FORTMATIC\"] = \"formatic\";\n ProviderType[\"NETWORK\"] = \"network\";\n ProviderType[\"WALLET_CONNECT\"] = \"wallet_connect\";\n})(ProviderType = exports.ProviderType || (exports.ProviderType = {}));\n//# sourceMappingURL=types.js.map","import React from 'react';\nexport var ReactReduxContext =\n/*#__PURE__*/\nReact.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"reactReduxForwardedRef\"]);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + \"or pass a custom React context provider to <Provider> and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default\n/*#__PURE__*/\ncreateConnect();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(storeState);\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector =\n/*#__PURE__*/\ncreateSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","import {\n StringType,\n EmptyAction,\n PayloadAction,\n PayloadMetaAction,\n} from './types';\n\nexport function action<T extends StringType>(type: T): EmptyAction<T>;\n\nexport function action<T extends StringType, P = undefined>(\n type: T,\n payload: P\n): PayloadAction<T, P>;\n\nexport function action<T extends StringType, P = undefined, M = undefined>(\n type: T,\n payload: P,\n meta: M\n): PayloadMetaAction<T, P, M>;\n\n/**\n * @description flux standard action factory\n * @example\n * ```\n * const add = (amount: number, meta?: MetaShape) => action('INCREMENT', amount, meta);\n * ```\n */\nexport function action<T extends StringType, P = undefined, M = undefined>(\n type: T,\n payload?: P,\n meta?: M\n) {\n return { type, payload, meta } as any;\n}\n","/** @internal */\nexport function validateActionType(arg: any, idx: number = 1): void {\n if (arg == null) {\n throw new Error(`Argument (#${idx}) is missing`);\n } else {\n if (typeof arg !== 'string' && typeof arg !== 'symbol') {\n throw new Error(`Argument (#${idx}) should be of type: string | symbol`);\n }\n }\n}\n","import { ActionCreator, StringOrSymbol } from './types';\n\n/**\n * @description decorate any action-creator to make it compatible with `typesafe-actions`\n * @description (usefull to make third-party action-creator work with typesafe helpers)\n */\nexport function createActionWithType<\n T extends StringOrSymbol,\n AC extends ActionCreator<T> = () => { type: T }\n>(type: T, actionCreatorHandler?: (type: T) => AC): AC {\n const actionCreator: AC =\n actionCreatorHandler != null\n ? actionCreatorHandler(type)\n : ((() => ({ type })) as AC);\n\n return Object.assign(actionCreator, {\n getType: () => type,\n // redux-actions compatibility\n toString: () => type,\n });\n}\n","import { StringType, ActionCreator } from './types';\nimport { validateActionType } from './utils';\nimport { action } from './action';\n\nexport type PayloadMetaAction<T extends StringType, P, M> = P extends undefined\n ? M extends undefined\n ? { type: T }\n : { type: T; meta: M }\n : M extends undefined\n ? { type: T; payload: P }\n : { type: T; payload: P; meta: M };\n\n/**\n * @description typesafe action-creator factory\n */\nexport function createAction<\n T extends StringType,\n AC extends ActionCreator<T> = () => { type: T }\n>(\n actionType: T,\n actionResolverHandler?: (\n resolve: <P = undefined, M = undefined>(\n payload?: P,\n meta?: M\n ) => PayloadMetaAction<T, P, M>\n ) => AC\n): AC {\n validateActionType(actionType);\n\n const actionCreator: AC =\n actionResolverHandler == null\n ? ((() => action(actionType)) as AC)\n : actionResolverHandler(action.bind(null, actionType) as any);\n\n return Object.assign(actionCreator, {\n getType: () => actionType,\n // redux-actions compatibility\n toString: () => actionType,\n });\n}\n","import { StringType, Box, FsaBuilder, FsaMapBuilder } from './types';\nimport { createActionWithType } from './create-action-with-type';\nimport { validateActionType } from './utils';\n\nexport interface CreateStandardAction<T extends StringType> {\n <P = void, M = void>(): FsaBuilder<T, Box<P>, Box<M>>;\n map<R, P = void, M = void>(\n fn: (payload: P, meta: M) => R\n ): FsaMapBuilder<T, Box<R>, Box<P>, Box<M>>;\n}\n\n/**\n * @description create an action-creator of a given function that contains hidden \"type\" metadata\n */\nexport function createStandardAction<T extends StringType>(\n actionType: T\n): CreateStandardAction<T> {\n validateActionType(actionType);\n\n function constructor<P, M = void>(): FsaBuilder<T, Box<P>, Box<M>> {\n return createActionWithType(actionType, type => (payload: P, meta: M) => ({\n type,\n payload,\n meta,\n })) as FsaBuilder<T, Box<P>, Box<M>>;\n }\n\n function map<R, P, M>(\n fn: (payload: P, meta: M) => R\n ): FsaMapBuilder<T, Box<R>, Box<P>, Box<M>> {\n return createActionWithType(actionType, type => (payload: P, meta: M) =>\n Object.assign(fn(payload, meta), { type })\n ) as FsaMapBuilder<T, Box<R>, Box<P>, Box<M>>;\n }\n\n return Object.assign(constructor, { map });\n}\n","import { StringType, Box, FsaMapBuilder, FsaBuilder } from './types';\nimport { createActionWithType } from './create-action-with-type';\nimport { validateActionType } from './utils';\n\nexport interface CreateAsyncAction<\n T1 extends StringType,\n T2 extends StringType,\n T3 extends StringType\n> {\n // tslint:disable-next-line:callable-types\n <P1, P2, P3>(): AsyncActionBuilder<T1, T2, T3, P1, P2, P3>;\n // withMappers<A1 = void, P1 = void, A2 = void, P2 = void, A3 = void, P3 = void>(\n // requestMapper: (a?: A1) => P1,\n // successMapper: (a?: A2) => P2,\n // failureMapper: (a?: A3) => P3\n // ): AsyncActionWithMappers<T1, T2, T3, A1, P1, A2, P2, A3, P3>;\n}\n\nexport type AsyncActionBuilder<\n T1 extends StringType,\n T2 extends StringType,\n T3 extends StringType,\n P1,\n P2,\n P3\n> = {\n request: FsaBuilder<T1, Box<P1>>;\n success: FsaBuilder<T2, Box<P2>>;\n failure: FsaBuilder<T3, Box<P3>>;\n};\n\nexport type AsyncActionWithMappers<\n T1 extends StringType,\n T2 extends StringType,\n T3 extends StringType,\n A1 = void,\n P1 = void,\n A2 = void,\n P2 = void,\n A3 = void,\n P3 = void\n> = {\n request: FsaMapBuilder<T1, Box<A1>, Box<P1>>;\n success: FsaMapBuilder<T2, Box<A2>, Box<P2>>;\n failure: FsaMapBuilder<T3, Box<A3>, Box<P3>>;\n};\n\n/** implementation */\nexport function createAsyncAction<\n T1 extends StringType,\n T2 extends StringType,\n T3 extends StringType\n>(\n requestType: T1,\n successType: T2,\n failureType: T3\n): CreateAsyncAction<T1, T2, T3> {\n [requestType, successType, failureType].forEach((arg, idx) => {\n validateActionType(arg, idx + 1);\n });\n\n function constructor<P1, P2, P3>(): AsyncActionBuilder<\n T1,\n T2,\n T3,\n P1,\n P2,\n P3\n > {\n return {\n request: createActionWithType(requestType, type => (payload?: P1) => ({\n type: requestType,\n payload,\n })) as FsaBuilder<T1, Box<P1>>,\n success: createActionWithType(successType, type => (payload?: P2) => ({\n type: successType,\n payload,\n })) as FsaBuilder<T2, Box<P2>>,\n failure: createActionWithType(failureType, type => (payload?: P3) => ({\n type: failureType,\n payload,\n })) as FsaBuilder<T3, Box<P3>>,\n };\n }\n\n // function withMappers<A1, P1, A2, P2, A3, P3>(\n // requestMapper: (a?: A1) => P1,\n // successMapper: (a?: A2) => P2,\n // failureMapper: (a?: A3) => P3\n // ): AsyncActionWithMappers<T1, T2, T3, A1, P1, A2, P2, A3, P3> {\n // return {\n // request: createActionWithType(requestType, type => (payload?: A1) => ({\n // type,\n // payload: requestMapper != null ? requestMapper(payload) : undefined,\n // })) as MapBuilder<T1, B<A1>, B<P1>>,\n // success: createActionWithType(successType, type => (payload?: A2) => ({\n // type,\n // payload: successMapper != null ? successMapper(payload) : undefined,\n // })) as MapBuilder<T2, B<A2>, B<P2>>,\n // failure: createActionWithType(failureType, type => (payload?: A3) => ({\n // type,\n // payload: failureMapper != null ? failureMapper(payload) : undefined,\n // })) as MapBuilder<T3, B<A3>, B<P3>>,\n // };\n // }\n\n return Object.assign(constructor, {});\n}\n","import { StringType, ActionCreator, TypeMeta } from './types';\n\n/**\n * @description get the \"type literal\" of a given action-creator\n */\nexport function getType<T extends StringType>(\n creator: ActionCreator<T> & TypeMeta<T>\n): T {\n if (creator == null) {\n throw new Error('first argument is missing');\n }\n\n if (creator.getType == null) {\n throw new Error('first argument is not an instance of \"typesafe-actions\"');\n }\n\n return creator.getType();\n}\n","import { StringType } from './types';\nimport { validateActionType } from './utils';\n/**\n * @description (curried assert function) check if action type is equal given type-constant\n * @description it works with discriminated union types\n */\nexport function isOfType<T extends StringType, A extends { type: StringType }>(\n type: T,\n action: A\n): action is A extends { type: T } ? A : never;\n\n/**\n * @description (curried assert function) check if action type is equal given type-constant\n * @description it works with discriminated union types\n */\nexport function isOfType<\n T extends K[],\n K extends StringType,\n A extends { type: StringType }\n>(type: T, action: A): action is A extends { type: T } ? A : never;\n\n/**\n * @description (curried assert function) check if action type is equal given type-constant\n * @description it works with discriminated union types\n */\nexport function isOfType<T extends StringType>(\n type: T\n): <A extends { type: StringType }>(\n action: A\n) => action is A extends { type: T } ? A : never;\n\n/**\n * @description (curried assert function) check if action type is equal given type-constant\n * @description it works with discriminated union types\n */\nexport function isOfType<T extends K[], K extends StringType>(\n type: T\n): <A extends { type: StringType }>(\n action: A\n) => action is A extends { type: T } ? A : never;\n\n/** implementation */\nexport function isOfType<\n T extends StringType | StringType[],\n A extends { type: StringType }\n>(actionType: T, actionOrNil?: A) {\n Array.isArray(actionType)\n ? actionType.forEach(type => validateActionType(type))\n : validateActionType(actionType);\n\n const assertFn = Array.isArray(actionType)\n ? (action: A) => actionType.includes(action.type)\n : (action: A) => action.type === actionType;\n\n // with 1 arg return assertFn\n if (actionOrNil == null) {\n return assertFn;\n }\n // with 2 args invoke assertFn and return the result\n return assertFn(actionOrNil);\n}\n","import { TypeMeta } from './types';\n\nexport type AC<T extends { type: string }> = ((...args: any[]) => T) &\n TypeMeta<T['type']>;\n\n/**\n * @description (curried assert function) check if an action is the instance of given action-creator(s)\n * @description it works with discriminated union types\n * @inner If you need more than 5 arguments -> use switch\n */\nexport function isActionOf<A extends { type: string }, T1 extends A>(\n actionCreators: [AC<T1>],\n action: { type: string }\n): action is [T1][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>],\n action: { type: string }\n): action is [T1, T2][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>, AC<T3>],\n action: { type: string }\n): action is [T1, T2, T3][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A,\n T4 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>, AC<T3>, AC<T4>],\n action: { type: string }\n): action is [T1, T2, T3, T4][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A,\n T4 extends A,\n T5 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>, AC<T3>, AC<T4>, AC<T5>],\n action: { type: string }\n): action is [T1, T2, T3, T4, T5][number];\n\n/**\n * @description (curried assert function) check if an action is the instance of given action-creator(s)\n * @description it works with discriminated union types\n */\nexport function isActionOf<A extends { type: string }, T1 extends A>(\n actionCreator: AC<T1>,\n action: { type: string }\n): action is T1;\n\n/**\n * @description (curried assert function) check if an action is the instance of given action-creator(s)\n * @description it works with discriminated union types\n * @inner If you need more than 5 arguments -> use switch\n */\nexport function isActionOf<A extends { type: string }, T1 extends A>(\n actionCreators: [AC<T1>]\n): (action: A) => action is [T1][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A\n>(actionCreators: [AC<T1>, AC<T2>]): (action: A) => action is [T1, T2][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>, AC<T3>]\n): (action: A) => action is [T1, T2, T3][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A,\n T4 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>, AC<T3>, AC<T4>]\n): (action: A) => action is [T1, T2, T3, T4][number];\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A,\n T4 extends A,\n T5 extends A\n>(\n actionCreators: [AC<T1>, AC<T2>, AC<T3>, AC<T4>, AC<T5>]\n): (action: A) => action is [T1, T2, T3, T4, T5][number];\n\n/**\n * @description (curried assert function) check if an action is the instance of given action-creator(s)\n * @description it works with discriminated union types\n */\nexport function isActionOf<A extends { type: string }, T1 extends A>(\n actionCreator: AC<T1>\n): (action: A) => action is T1;\n\n/** implementation */\nexport function isActionOf<\n A extends { type: string },\n T1 extends A,\n T2 extends A,\n T3 extends A,\n T4 extends A,\n T5 extends A\n>(\n creatorOrCreators:\n | AC<T1>\n | [AC<T1>]\n | [AC<T1>, AC<T2>]\n | [AC<T1>, AC<T2>, AC<T3>]\n | [AC<T1>, AC<T2>, AC<T3>, AC<T4>]\n | [AC<T1>, AC<T2>, AC<T3>, AC<T4>, AC<T5>],\n actionOrNil?: A\n) {\n if (creatorOrCreators == null) {\n throw new Error('first argument is missing');\n }\n\n if (Array.isArray(creatorOrCreators)) {\n (creatorOrCreators as any[]).forEach((actionCreator, index) => {\n if (actionCreator.getType == null) {\n throw new Error(`first argument contains element\n that is not created with \"typesafe-actions\" at index [${index}]`);\n }\n });\n } else {\n if (creatorOrCreators.getType == null) {\n throw new Error('first argument is not created with \"typesafe-actions\"');\n }\n }\n\n const assertFn = (action: A): action is [T1, T2, T3, T4, T5][number] => {\n const actionCreators: any[] = Array.isArray(creatorOrCreators)\n ? creatorOrCreators\n : [creatorOrCreators];\n\n return actionCreators.some((actionCreator, index) => {\n return actionCreator.getType() === action.type;\n });\n };\n\n // with 1 arg return assertFn\n if (actionOrNil == null) {\n return assertFn;\n }\n // with 2 args invoke assertFn and return the result\n return assertFn(actionOrNil);\n}\n","import { StringOrSymbol } from './types';\n\nexport interface FSA<T extends StringOrSymbol, P = {}, M = {}, E = boolean> {\n type: T;\n payload?: P;\n meta?: M;\n error?: E;\n}\n\n/**\n * @description create an action-creator of a given function that contains hidden \"type\" metadata\n */\nexport function createActionDeprecated<\n T extends StringOrSymbol,\n AC extends (...args: any[]) => FSA<T>\n>(actionType: T, creatorFunction: AC): AC;\n\n/**\n * @description create an action-creator of a given function that contains hidden \"type\" metadata\n */\nexport function createActionDeprecated<\n T extends StringOrSymbol,\n AC extends () => { type: T }\n>(actionType: T): AC;\n\n/**\n * implementation\n */\nexport function createActionDeprecated<\n T extends StringOrSymbol,\n AC extends (...args: any[]) => FSA<T>\n>(actionType: T, creatorFunction?: AC): AC {\n let actionCreator: AC;\n\n if (creatorFunction != null) {\n if (typeof creatorFunction !== 'function') {\n throw new Error('second argument is not a function');\n }\n\n actionCreator = creatorFunction as AC;\n } else {\n actionCreator = (() => ({ type: actionType })) as AC;\n }\n\n if (actionType != null) {\n if (typeof actionType !== 'string' && typeof actionType !== 'symbol') {\n throw new Error('first argument should be type of: string | symbol');\n }\n } else {\n throw new Error('first argument is missing');\n }\n\n return actionCreator;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var defineProperty = require(\"./defineProperty\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;","\"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.validateType = exports.generateValidator = exports.Ajv = void 0;\nconst ajv_1 = __importDefault(require(\"ajv\"));\nexports.Ajv = ajv_1.default;\n/**\n * Generates a validator for a specific JSON schema of a type T\n * @public\n */\nfunction generateValidator(schema) {\n const ajv = new ajv_1.default();\n return ajv.compile(schema);\n}\nexports.generateValidator = generateValidator;\n/**\n * Validates a type with a schema in a functional way.\n * @public\n */\nfunction validateType(theType, value) {\n return theType.validate(value);\n}\nexports.validateType = validateType;\n//# sourceMappingURL=validation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applySubschema = exports.Type = void 0;\nconst validate_1 = require(\"./validate\");\nconst util_1 = require(\"./util\");\nconst codegen_1 = require(\"./codegen\");\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type = exports.Type || (exports.Type = {}));\nfunction applySubschema(it, appl, valid) {\n const subschema = getSubschema(it, appl);\n extendSubschemaData(subschema, it, appl);\n extendSubschemaMode(subschema, appl);\n const nextContext = { ...it, ...subschema, items: undefined, props: undefined };\n validate_1.subschemaCode(nextContext, valid);\n return nextContext;\n}\nexports.applySubschema = applySubschema;\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: codegen_1._ `${it.schemaPath}${codegen_1.getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: codegen_1._ `${it.schemaPath}${codegen_1.getProperty(keyword)}${codegen_1.getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${util_1.escapeFragment(schemaProp)}`,\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 throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", codegen_1._ `${it.data}${codegen_1.getProperty(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = codegen_1.str `${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = codegen_1._ `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\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}\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? codegen_1._ `\"[\" + ${dataProp} + \"]\"`\n : codegen_1._ `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? codegen_1._ `\"/\" + ${dataProp}`\n : codegen_1._ `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? codegen_1.getProperty(dataProp).toString() : \"/\" + util_1.escapeJsonPointer(dataProp);\n}\n//# sourceMappingURL=subschema.js.map","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\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","'use strict';\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualObjects;\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType = exports.DataType || (exports.DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\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)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && applicability_1.schemaHasRulesForType(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strict, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", codegen_1._ `typeof ${data}`);\n const coerced = gen.let(\"coerced\", codegen_1._ `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if(codegen_1._ `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, codegen_1._ `${data}[0]`)\n .assign(dataType, codegen_1._ `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strict), () => gen.assign(coerced, data)));\n }\n gen.if(codegen_1._ `${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 gen.if(codegen_1._ `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf(codegen_1._ `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, codegen_1._ `\"\" + ${data}`)\n .elseIf(codegen_1._ `${data} === null`)\n .assign(coerced, codegen_1._ `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf(codegen_1._ `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, codegen_1._ `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf(codegen_1._ `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, codegen_1._ `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf(codegen_1._ `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(codegen_1._ `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf(codegen_1._ `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf(codegen_1._ `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, codegen_1._ `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if(codegen_1._ `${parentData} !== undefined`, () => gen.assign(codegen_1._ `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return codegen_1._ `${data} ${EQ} null`;\n case \"array\":\n cond = codegen_1._ `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = codegen_1._ `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond(codegen_1._ `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return codegen_1._ `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : codegen_1.not(cond);\n function numCond(_cond = codegen_1.nil) {\n return codegen_1.and(codegen_1._ `typeof ${data} == \"number\"`, _cond, strictNums ? codegen_1._ `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = util_1.toHash(dataTypes);\n if (types.array && types.object) {\n const notObj = codegen_1._ `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : codegen_1._ `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = codegen_1.and(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => codegen_1.str `should be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? codegen_1._ `{type: ${schema}}` : codegen_1._ `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n errors_1.reportError(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = util_1.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//# sourceMappingURL=dataType.js.map","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = void 0;\nconst dataType_1 = require(\"./validate/dataType\");\nconst util_1 = require(\"./util\");\nconst errors_1 = require(\"./errors\");\nconst codegen_1 = require(\"./codegen\");\nconst names_1 = require(\"./names\");\nconst subschema_1 = require(\"./subschema\");\nclass KeywordCxt {\n constructor(it, def, keyword) {\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 = util_1.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 if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\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 if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.gen.if(codegen_1.not(condition));\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.result(condition, undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n 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)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail(codegen_1._ `${schemaCode} !== undefined && (${codegen_1.or(this.invalid$data(), condition)})`);\n }\n error(append) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error);\n }\n $dataError() {\n errors_1.reportError(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n errors_1.resetErrorsCount(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if(codegen_1.or(codegen_1._ `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return codegen_1.or(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return codegen_1._ `${dataType_1.checkDataTypes(st, schemaCode, it.opts.strict, dataType_1.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return codegen_1._ `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n return subschema_1.applySubschema(this.it, appl, valid);\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.default = KeywordCxt;\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => 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}\nfunction validateKeywordUsage({ schema, opts, self }, def, keyword) {\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 const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = \"keyword value is invalid: \" + self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = codegen_1._ `${data}${codegen_1.getProperty(util_1.unescapeJsonPointer(segment))}`;\n expr = codegen_1._ `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => codegen_1.str `should pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? codegen_1.str `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : codegen_1.str `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, codegen_1._ `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if(codegen_1._ `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign(codegen_1._ `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, codegen_1._ `${names_1.default.vErrors}[${i}]`);\n gen.if(codegen_1._ `${err}.dataPath === undefined`, () => gen.assign(codegen_1._ `${err}.dataPath`, codegen_1.strConcat(names_1.default.dataPath, it.errorPath)));\n gen.assign(codegen_1._ `${err}.schemaPath`, codegen_1.str `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign(codegen_1._ `${err}.schema`, schemaValue);\n gen.assign(codegen_1._ `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if(codegen_1._ `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, codegen_1._ `[${err}]`), codegen_1._ `${names_1.default.vErrors}.push(${err})`);\n gen.code(codegen_1._ `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw(codegen_1._ `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign(codegen_1._ `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"),\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n // JTD error properties\n instancePath: new codegen_1.Name(\"instancePath\"),\n};\nfunction errorObjectCode(cxt, error) {\n const { createErrors, opts } = cxt.it;\n if (createErrors === false)\n return codegen_1._ `{}`;\n return (opts.jtd && !opts.ajvErrors ? jtdErrorObject : ajvErrorObject)(cxt, error);\n}\nfunction jtdErrorObject(cxt, { message }) {\n const { gen, keyword, it } = cxt;\n const { errorPath, errSchemaPath, opts } = it;\n const keyValues = [\n [E.instancePath, codegen_1.strConcat(names_1.default.dataPath, errorPath)],\n [E.schemaPath, codegen_1.str `${errSchemaPath}/${keyword}`],\n ];\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n return gen.object(...keyValues);\n}\nfunction ajvErrorObject(cxt, error) {\n const { gen, keyword, data, schemaValue, it } = cxt;\n const { topSchemaRef, schemaPath, errorPath, errSchemaPath, propertyName, opts } = it;\n const { params, message } = error;\n const keyValues = [\n [E.keyword, keyword],\n [names_1.default.dataPath, codegen_1.strConcat(names_1.default.dataPath, errorPath)],\n [E.schemaPath, codegen_1.str `${errSchemaPath}/${keyword}`],\n [E.params, typeof params == \"function\" ? params(cxt) : params || codegen_1._ `{}`],\n ];\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, codegen_1._ `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n return gen.object(...keyValues);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;\nconst util_1 = require(\"./util\");\nconst equal = require(\"fast-deep-equal\");\nconst traverse = require(\"json-schema-traverse\");\nconst URI = require(\"uri-js\");\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]);\nfunction inlineRef(schema, limit = true) {\n if (typeof schema == \"boolean\")\n return true;\n if (limit === true)\n return !hasRef(schema);\n if (!limit)\n return false;\n return countKeys(schema) <= limit;\n}\nexports.inlineRef = inlineRef;\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n]);\nfunction hasRef(schema) {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key))\n return true;\n const sch = schema[key];\n if (Array.isArray(sch) && sch.some(hasRef))\n return true;\n if (typeof sch == \"object\" && hasRef(sch))\n return true;\n }\n return false;\n}\nfunction countKeys(schema) {\n let count = 0;\n for (const key in schema) {\n if (key === \"$ref\")\n return Infinity;\n count++;\n if (SIMPLE_INLINED.has(key))\n continue;\n if (typeof schema[key] == \"object\") {\n util_1.eachItem(schema[key], (sch) => (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = URI.parse(id);\n return _getFullPath(p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(p) {\n return URI.serialize(p).split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema) {\n if (typeof schema == \"boolean\")\n return {};\n const schemaId = normalizeId(schema.$id);\n const baseIds = { \"\": schemaId };\n const pathPrefix = getFullPath(schemaId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let baseId = baseIds[parentJsonPtr];\n if (typeof sch.$id == \"string\")\n baseId = addRef.call(this, sch.$id);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = baseId;\n function addRef(ref) {\n ref = normalizeId(baseId ? URI.resolve(baseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","'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';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [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}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [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}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\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}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = void 0;\nconst resolve_1 = require(\"./resolve\");\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.ValidationError = ValidationError;\nclass MissingRefError extends Error {\n constructor(baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = resolve_1.resolveUrl(baseId, ref);\n this.missingSchema = resolve_1.normalizeId(resolve_1.getFullPath(this.missingRef));\n }\n}\nexports.MissingRefError = MissingRefError;\nmodule.exports = {\n ValidationError,\n MissingRefError,\n};\n//# sourceMappingURL=error_classes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getConfiguration = void 0;\nconst schemas_1 = require(\"@dcl/schemas\");\nconst types_1 = require(\"./types\");\nconst configuration = Object.freeze({\n storageKey: 'decentraland-connect-storage-key',\n [types_1.ProviderType.INJECTED]: {},\n [types_1.ProviderType.FORTMATIC]: {\n apiKeys: {\n [schemas_1.ChainId.ETHEREUM_MAINNET]: 'pk_live_F8E24DF8DD5BCBC5',\n [schemas_1.ChainId.ETHEREUM_ROPSTEN]: 'pk_test_5B728BEFE5C10911',\n [schemas_1.ChainId.ETHEREUM_RINKEBY]: 'pk_test_5B728BEFE5C10911',\n [schemas_1.ChainId.ETHEREUM_KOVAN]: 'pk_test_5B728BEFE5C10911'\n }\n },\n [types_1.ProviderType.WALLET_CONNECT]: {\n urls: {\n [schemas_1.ChainId.ETHEREUM_MAINNET]: 'https://mainnet.mycustomnode.com',\n [schemas_1.ChainId.ETHEREUM_ROPSTEN]: 'https://ropsten.mycustomnode.com',\n [schemas_1.ChainId.ETHEREUM_RINKEBY]: 'https://ropsten.mycustomnode.com',\n [schemas_1.ChainId.ETHEREUM_KOVAN]: 'https://ropsten.mycustomnode.com'\n }\n }\n});\nfunction getConfiguration() {\n return configuration;\n}\nexports.getConfiguration = getConfiguration;\n//# sourceMappingURL=configuration.js.map","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\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","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\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.isValidChainId = exports.isDapperProvider = exports.isCucumberProvider = exports.getConnectedProviderType = exports.getConnectedProvider = exports.createProvider = void 0;\nconst schemas_1 = require(\"@dcl/schemas\");\nconst decentraland_connect_1 = require(\"decentraland-connect\");\nconst utils_1 = require(\"./utils\");\nfunction createProvider(providerType, chainId) {\n return __awaiter(this, void 0, void 0, function* () {\n return decentraland_connect_1.connection.createProvider(providerType, chainId);\n });\n}\nexports.createProvider = createProvider;\nfunction getConnectedProvider() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const { provider } = yield decentraland_connect_1.connection.tryPreviousConnection();\n return provider ? provider : null;\n }\n catch (error) {\n return null;\n }\n });\n}\nexports.getConnectedProvider = getConnectedProvider;\nfunction getConnectedProviderType() {\n const connectionData = decentraland_connect_1.connection.getConnectionData();\n return connectionData ? connectionData.providerType : null;\n}\nexports.getConnectedProviderType = getConnectedProviderType;\nfunction isCucumberProvider() {\n const provider = window.ethereum;\n return utils_1.isMobile() && !!provider && !!provider.isCucumber;\n}\nexports.isCucumberProvider = isCucumberProvider;\nfunction isDapperProvider() {\n const provider = window.ethereum;\n return !!provider && !!provider.isDapper;\n}\nexports.isDapperProvider = isDapperProvider;\nfunction isValidChainId(chainId) {\n return Object.values(schemas_1.ChainId).includes(Number(chainId));\n}\nexports.isValidChainId = isValidChainId;\n//# sourceMappingURL=eth.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","// 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 eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\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}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState = exports.UsedValueState || (exports.UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.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}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = code_1._ `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = code_1._ `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\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 getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return code_1._ `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = code_1._ `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = code_1._ `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","export function merge(...sets:Array<string>):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<any> {\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 <https://mathiasbynens.be/notes/javascript-encoding>\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 <n,i> state to <m,0>,\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 <https://mathiasbynens.be/notes/javascript-encoding>\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 <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\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<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\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<string>(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<Array<{index:number,length:number}>>((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 = (<RegExpMatchArray>(\"\").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<string> = [];\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<string> = [];\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<string> = [];\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(<URIComponents>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(<URIComponents>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(<URIComponents>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<string>,\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<MailtoComponents> = {\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<URNComponents,URNOptions> = {\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<UUIDComponents, URIOptions, URNComponents> = {\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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst error_classes_1 = require(\"./error_classes\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nconst URI = require(\"uri-js\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : resolve_1.normalizeId(schema === null || schema === void 0 ? void 0 : schema.$id);\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = resolve_1.getFullPath(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_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: error_classes_1.ValidationError,\n code: codegen_1._ `require(\"ajv/dist/compile/error_classes\").ValidationError`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil],\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: codegen_1.stringify(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: this.opts.jtd ? \"\" : \"#\",\n errorPath: codegen_1._ `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n validate_1.validateFunctionCode(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$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 codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = codegen_1.stringify(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = resolve_1.resolveUrl(baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n if (schema)\n _sch = new SchemaEnv({ schema, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if (resolve_1.inlineRef(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = URI.parse(ref);\n const refPath = resolve_1._getFullPath(p);\n let baseId = resolve_1.getFullPath(root.baseId);\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 const id = resolve_1.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 === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === resolve_1.normalizeId(ref)) {\n const { schema } = schOrRef;\n if (schema.$id)\n baseId = resolve_1.resolveUrl(baseId, schema.$id);\n return new SchemaEnv({ schema, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema == \"boolean\")\n return;\n schema = schema[util_1.unescapeFragment(part)];\n if (schema === undefined)\n return;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n if (!PREVENT_SCOPE_CHANGE.has(part) && typeof schema == \"object\" && schema.$id) {\n baseId = resolve_1.resolveUrl(baseId, schema.$id);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !util_1.schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolve_1.resolveUrl(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 env = env || new SchemaEnv({ schema, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst subschema_1 = require(\"../../compile/subschema\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"should NOT have additional properties\",\n params: ({ params }) => codegen_1._ `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\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)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && util_1.alwaysValidSchema(it, schema))\n return;\n const props = code_1.allSchemaProperties(parentSchema.properties);\n const patProps = code_1.allSchemaProperties(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok(codegen_1._ `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = util_1.schemaRefOrVal(it, parentSchema.properties, \"properties\");\n definedProp = code_1.isOwnProperty(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = codegen_1.or(...props.map((p) => codegen_1._ `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = codegen_1.or(definedProp, ...patProps.map((p) => codegen_1._ `${code_1.usePattern(gen, p)}.test(${key})`));\n }\n return codegen_1.not(definedProp);\n }\n function deleteAdditional(key) {\n gen.code(codegen_1._ `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !util_1.alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if(codegen_1.not(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if(codegen_1.not(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: subschema_1.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};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChainName = exports.ChainId = void 0;\nconst validation_1 = require(\"../validation\");\nconst chain_name_1 = require(\"./chain-name\");\n/**\n * Different supported chain ids\n * @alpha\n */\nvar ChainId;\n(function (ChainId) {\n ChainId[ChainId[\"ETHEREUM_MAINNET\"] = 1] = \"ETHEREUM_MAINNET\";\n ChainId[ChainId[\"ETHEREUM_ROPSTEN\"] = 3] = \"ETHEREUM_ROPSTEN\";\n ChainId[ChainId[\"ETHEREUM_RINKEBY\"] = 4] = \"ETHEREUM_RINKEBY\";\n ChainId[ChainId[\"ETHEREUM_GOERLI\"] = 5] = \"ETHEREUM_GOERLI\";\n ChainId[ChainId[\"ETHEREUM_KOVAN\"] = 42] = \"ETHEREUM_KOVAN\";\n ChainId[ChainId[\"MATIC_MAINNET\"] = 137] = \"MATIC_MAINNET\";\n ChainId[ChainId[\"MATIC_MUMBAI\"] = 80001] = \"MATIC_MUMBAI\";\n})(ChainId = exports.ChainId || (exports.ChainId = {}));\n/**\n * Get the chain name by chain id\n * @alpha\n */\nfunction getChainName(chainId) {\n switch (chainId) {\n case ChainId.ETHEREUM_MAINNET:\n return chain_name_1.ChainName.ETHEREUM_MAINNET;\n case ChainId.ETHEREUM_ROPSTEN:\n return chain_name_1.ChainName.ETHEREUM_ROPSTEN;\n case ChainId.ETHEREUM_RINKEBY:\n return chain_name_1.ChainName.ETHEREUM_RINKEBY;\n case ChainId.ETHEREUM_GOERLI:\n return chain_name_1.ChainName.ETHEREUM_GOERLI;\n case ChainId.ETHEREUM_KOVAN:\n return chain_name_1.ChainName.ETHEREUM_KOVAN;\n case ChainId.MATIC_MAINNET:\n return chain_name_1.ChainName.MATIC_MAINNET;\n case ChainId.MATIC_MUMBAI:\n return chain_name_1.ChainName.MATIC_MUMBAI;\n default:\n return null;\n }\n}\nexports.getChainName = getChainName;\n/**\n * @alpha\n */\n(function (ChainId) {\n ChainId.schema = {\n type: 'number',\n enum: Object.values(ChainId),\n };\n ChainId.validate = validation_1.generateValidator(ChainId.schema);\n})(ChainId = exports.ChainId || (exports.ChainId = {}));\n//# sourceMappingURL=chain-id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChainId = exports.ChainName = void 0;\nconst validation_1 = require(\"../validation\");\nconst chain_id_1 = require(\"./chain-id\");\n/**\n * Different supported chain names\n * @alpha\n */\nvar ChainName;\n(function (ChainName) {\n ChainName[\"ETHEREUM_MAINNET\"] = \"MAINNET\";\n ChainName[\"ETHEREUM_ROPSTEN\"] = \"ROPSTEN\";\n ChainName[\"ETHEREUM_RINKEBY\"] = \"RINKEBY\";\n ChainName[\"ETHEREUM_GOERLI\"] = \"GOERLI\";\n ChainName[\"ETHEREUM_KOVAN\"] = \"KOVAN\";\n ChainName[\"MATIC_MAINNET\"] = \"MATIC\";\n ChainName[\"MATIC_MUMBAI\"] = \"MUMBAI\";\n})(ChainName = exports.ChainName || (exports.ChainName = {}));\n/**\n * Get chain id by chain name\n * @alpha\n */\nfunction getChainId(chainName) {\n switch (chainName) {\n case ChainName.ETHEREUM_MAINNET:\n return chain_id_1.ChainId.ETHEREUM_MAINNET;\n case ChainName.ETHEREUM_ROPSTEN:\n return chain_id_1.ChainId.ETHEREUM_ROPSTEN;\n case ChainName.ETHEREUM_RINKEBY:\n return chain_id_1.ChainId.ETHEREUM_RINKEBY;\n case ChainName.ETHEREUM_GOERLI:\n return chain_id_1.ChainId.ETHEREUM_GOERLI;\n case ChainName.ETHEREUM_KOVAN:\n return chain_id_1.ChainId.ETHEREUM_KOVAN;\n case ChainName.MATIC_MAINNET:\n return chain_id_1.ChainId.MATIC_MAINNET;\n case ChainName.MATIC_MUMBAI:\n return chain_id_1.ChainId.MATIC_MUMBAI;\n default:\n return null;\n }\n}\nexports.getChainId = getChainId;\n/**\n * @alpha\n */\n(function (ChainName) {\n ChainName.schema = {\n type: 'string',\n enum: Object.values(ChainName),\n };\n ChainName.validate = validation_1.generateValidator(ChainName.schema);\n})(ChainName = exports.ChainName || (exports.ChainName = {}));\n//# sourceMappingURL=chain-name.js.map","\"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 __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(\"./AbstractConnector\"), exports);\n__exportStar(require(\"./FortmaticConnector\"), exports);\n__exportStar(require(\"./InjectedConnector\"), exports);\n__exportStar(require(\"./NetworkConnector\"), exports);\n__exportStar(require(\"./WalletConnectConnector\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = void 0;\nclass Storage {\n}\nexports.Storage = Storage;\n//# sourceMappingURL=Storage.js.map","/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n return argument instanceof Date\n}\n\nmodule.exports = isDate\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n\n var fourthOfJanuaryOfNextYear = new Date(0)\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n var fourthOfJanuaryOfThisYear = new Date(0)\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\nmodule.exports = getISOYear\n","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n}\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","export type Callback = (err: Error | null, message?: any) => void\n\nexport type RPCMessage = {\n jsonrpc: '2.0'\n id: number\n method: string\n params: any[] | { [key: string]: any }\n}\n\nexport type RPCError = {\n jsonrpc: '2.0'\n id: number\n error: any\n}\n\nexport type RPCResponse =\n | RPCError\n | {\n jsonrpc: '2.0'\n id: number\n result: any\n }\n\nexport function toRPC(message: RPCMessage): RPCMessage {\n message.jsonrpc = '2.0'\n\n if (!message.id || typeof message.id !== 'number' || Math.floor(message.id) !== message.id) {\n throw new Error(`Invalid RPC message(invalid id) message: ${JSON.stringify(message)}`)\n }\n\n if (!message.method || typeof message.method !== 'string' || message.method.trim().length === 0) {\n throw new Error(`Invalid RPC message(invalid method) message: ${JSON.stringify(message)}`)\n }\n\n if (!message.params || typeof message.params !== 'object') {\n throw new Error(`Invalid RPC message(invalid params) message: ${JSON.stringify(message)}`)\n }\n return message\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction future() {\n let resolver;\n let rejecter;\n const promise = new Promise((ok, err) => {\n resolver = (x) => {\n ok(x);\n promise.isPending = false;\n };\n rejecter = (x) => {\n err(x);\n promise.isPending = false;\n };\n }).catch(e => Promise.reject(e));\n promise.resolve = resolver;\n promise.reject = rejecter;\n if (!(\"finally\" in promise)) {\n promise.finally = fn => {\n promise.then(fn);\n promise.catch(fn);\n };\n }\n promise.isPending = true;\n return promise;\n}\nexports.future = future;\nexports.default = future;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQU9BLFNBQWdCLE1BQU07SUFDcEIsSUFBSSxRQUF3QixDQUFDO0lBQzdCLElBQUksUUFBNEIsQ0FBQztJQUVqQyxNQUFNLE9BQU8sR0FBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMzQyxRQUFRLEdBQUcsQ0FBQyxDQUFJLEVBQUUsRUFBRTtZQUNsQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUM7UUFDRixRQUFRLEdBQUcsQ0FBQyxDQUFRLEVBQUUsRUFBRTtZQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDUCxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFakMsT0FBTyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7SUFDM0IsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7SUFFMUIsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUU7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQztLQUNIO0lBRUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFFekIsT0FBTyxPQUFxQixDQUFDO0FBQy9CLENBQUM7QUE1QkQsd0JBNEJDO0FBRUQsa0JBQWUsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSUZ1dHVyZTxUPiA9IFByb21pc2U8VD4gJiB7XG4gIHJlc29sdmU6ICh4OiBUKSA9PiB2b2lkO1xuICByZWplY3Q6ICh4OiBFcnJvcikgPT4gdm9pZDtcbiAgZmluYWxseTogKGZuOiAoKSA9PiB2b2lkKSA9PiB2b2lkO1xuICBpc1BlbmRpbmc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZnV0dXJlPFQgPSBhbnk+KCk6IElGdXR1cmU8VD4ge1xuICBsZXQgcmVzb2x2ZXI6ICh4OiBUKSA9PiB2b2lkO1xuICBsZXQgcmVqZWN0ZXI6ICh4OiBFcnJvcikgPT4gdm9pZDtcblxuICBjb25zdCBwcm9taXNlOiBhbnkgPSBuZXcgUHJvbWlzZSgob2ssIGVycikgPT4ge1xuICAgIHJlc29sdmVyID0gKHg6IFQpID0+IHtcbiAgICAgIG9rKHgpO1xuICAgICAgcHJvbWlzZS5pc1BlbmRpbmcgPSBmYWxzZTtcbiAgICB9O1xuICAgIHJlamVjdGVyID0gKHg6IEVycm9yKSA9PiB7XG4gICAgICBlcnIoeCk7XG4gICAgICBwcm9taXNlLmlzUGVuZGluZyA9IGZhbHNlO1xuICAgIH07XG4gIH0pLmNhdGNoKGUgPT4gUHJvbWlzZS5yZWplY3QoZSkpO1xuXG4gIHByb21pc2UucmVzb2x2ZSA9IHJlc29sdmVyO1xuICBwcm9taXNlLnJlamVjdCA9IHJlamVjdGVyO1xuXG4gIGlmICghKFwiZmluYWxseVwiIGluIHByb21pc2UpKSB7XG4gICAgcHJvbWlzZS5maW5hbGx5ID0gZm4gPT4ge1xuICAgICAgcHJvbWlzZS50aGVuKGZuKTtcbiAgICAgIHByb21pc2UuY2F0Y2goZm4pO1xuICAgIH07XG4gIH1cblxuICBwcm9taXNlLmlzUGVuZGluZyA9IHRydWU7XG5cbiAgcmV0dXJuIHByb21pc2UgYXMgSUZ1dHVyZTxUPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnV0dXJlO1xuIl19","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\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}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\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}\nexport function nextTick(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// 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};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_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_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_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_SHA3_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 (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_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(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++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 this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.1\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2020 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz';\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","import { BigNumber } from 'bignumber.js'\nexport { BigNumber }\n\nconst ETH_BIGNUMBER_ROUNDING_MODE = {\n ROUNDING_MODE: BigNumber.ROUND_DOWN as BigNumber.RoundingMode\n}\n\nBigNumber.config(ETH_BIGNUMBER_ROUNDING_MODE)\n","import { hexToBytes } from './utils'\n\n/**\n * Converts a string into a Uint8Array encoded with UTF-8\n * @public\n */\nexport function stringToUtf8Bytes(str: string): Uint8Array {\n return new TextEncoder().encode(str)\n}\n\n/**\n * Decodes an Uint8Array or hex string into a UTF-8 string\n * @public\n */\nexport function bytesToUtf8String(bytesOrHexString: Uint8Array | string): string {\n if (typeof bytesOrHexString == 'string') {\n return bytesToUtf8String(hexToBytes(bytesOrHexString))\n }\n return new TextDecoder().decode(bytesOrHexString)\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// Unknown Error\nexport const UNKNOWN_ERROR = 'UNKNOWN_ERROR'\n\n// Not implemented\nexport const NOT_IMPLEMENTED = 'NOT_IMPLEMENTED'\n\n// Missing new operator to an object\n// - name: The name of the class\nexport const MISSING_NEW = 'MISSING_NEW'\n\n// Call exception\n// - transaction: the transaction\n// - address?: the contract address\n// - args?: The arguments passed into the function\n// - method?: The Solidity method signature\n// - errorSignature?: The EIP848 error signature\n// - errorArgs?: The EIP848 error parameters\n// - reason: The reason (only for EIP848 \"Error(string)\")\nexport const CALL_EXCEPTION = 'CALL_EXCEPTION'\n\n// Invalid argument (e.g. value is incompatible with type) to a function:\n// - arg: The argument name that was invalid\n// - value: The value of the argument\nexport const INVALID_ARGUMENT = 'INVALID_ARGUMENT'\n\n// Missing argument to a function:\n// - count: The number of arguments received\n// - expectedCount: The number of arguments expected\nexport const MISSING_ARGUMENT = 'MISSING_ARGUMENT'\n\n// Too many arguments\n// - count: The number of arguments received\n// - expectedCount: The number of arguments expected\nexport const UNEXPECTED_ARGUMENT = 'UNEXPECTED_ARGUMENT'\n\n// Numeric Fault\n// - operation: the operation being executed\n// - fault: the reason this faulted\nexport const NUMERIC_FAULT = 'NUMERIC_FAULT'\n\n// Insufficien funds (< value + gasLimit * gasPrice)\n// - transaction: the transaction attempted\nexport const INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS'\n\n// Nonce has already been used\n// - transaction: the transaction attempted\nexport const NONCE_EXPIRED = 'NONCE_EXPIRED'\n\n// The replacement fee for the transaction is too low\n// - transaction: the transaction attempted\nexport const REPLACEMENT_UNDERPRICED = 'REPLACEMENT_UNDERPRICED'\n\n// Unsupported operation\n// - operation\nexport const UNSUPPORTED_OPERATION = 'UNSUPPORTED_OPERATION'\n\nexport function InvalidNumberOfSolidityArgs(given: number, expected: number) {\n return new Error(`Invalid number of arguments to Solidity function. given: ${given}, expected: ${expected}`)\n}\n\nexport function InvalidNumberOfRPCParams(methodName: string, given: number, expected: number) {\n return new Error(\n `Invalid number of input parameters to RPC method \"${methodName}\" given: ${given}, expected: ${expected}`\n )\n}\n\nexport function InvalidConnection(host: string) {\n return new Error(\"CONNECTION ERROR: Couldn't connect to node \" + host + '.')\n}\n\nexport function InvalidProvider() {\n return new Error('Provider not set or invalid')\n}\n\nexport function InvalidResponse(result: any) {\n let message =\n !!result && !!result.error && !!result.error.message\n ? result.error.message\n : 'Invalid JSON RPC response: ' + JSON.stringify(result)\n return new Error(message)\n}\n\nexport function ConnectionTimeout(ms: number) {\n return new Error('CONNECTION TIMEOUT: timeout of ' + ms + ' ms achived')\n}\n\nlet _permanentCensorErrors = false\nlet _censorErrors = false\n\nexport function error(message: string, code: string = UNKNOWN_ERROR, params: any = {}): Error {\n if (_censorErrors) {\n return new Error('unknown error')\n }\n\n let messageDetails: Array<string> = []\n Object.keys(params).forEach((key) => {\n try {\n messageDetails.push(key + '=' + JSON.stringify(params[key]))\n } catch (error) {\n messageDetails.push(key + '=' + JSON.stringify(params[key].toString()))\n }\n })\n\n let reason = message\n if (messageDetails.length) {\n message += ' (' + messageDetails.join(', ') + ')'\n }\n\n // @TODO: Any??\n let error: any = new Error(message)\n error.reason = reason\n error.code = code\n\n Object.keys(params).forEach(function (key) {\n error[key] = params[key]\n })\n\n return error\n}\n\nexport function checkNew(self: any, kind: any): void {\n if (!(self instanceof kind)) {\n throw error('missing new', MISSING_NEW, { name: kind.name })\n }\n}\n\nexport function checkArgumentCount(count: number, expectedCount: number, suffix?: string): void {\n if (!suffix) {\n suffix = ''\n }\n if (count < expectedCount) {\n throw error('missing argument' + suffix, MISSING_ARGUMENT, { count: count, expectedCount: expectedCount })\n }\n if (count > expectedCount) {\n throw error('too many arguments' + suffix, UNEXPECTED_ARGUMENT, { count: count, expectedCount: expectedCount })\n }\n}\n\nexport function setCensorship(censorship: boolean, permanent?: boolean): void {\n if (_permanentCensorErrors) {\n throw error('error censorship permanent', UNSUPPORTED_OPERATION, { operation: 'setCersorship' })\n }\n\n _censorErrors = !!censorship\n _permanentCensorErrors = !!permanent\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { keccak256 } from 'js-sha3'\nimport { BigNumber } from './BigNumber'\nimport { AbiInput, AbiItem } from '../Schema'\nimport { stringToUtf8Bytes } from './utf8'\nimport * as errors from './errors'\n\n/**\n * @public\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex != 'string') throw new Error('hexToBytes only accept strings, got: ' + typeof hex)\n\n if (hex.substr(0, 2) === '0x') {\n return hexToBytes(hex.substr(2))\n }\n\n const result = new Uint8Array(Math.ceil(hex.length / 2))\n\n let i = 0\n for (let char = 0; char < hex.length; char += 2) {\n const n = parseInt(hex.substr(char, 2), 16)\n if (isNaN(n)) throw new Error('Cannot read hex string:' + JSON.stringify(hex))\n result[i] = n\n i++\n }\n\n return result\n}\n\n/**\n * @public\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n const hashArray = Array.from(bytes) // convert buffer to byte array\n const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('') // convert bytes to hex string\n return hashHex\n}\n\n/**\n * @public\n */\nexport function sha3(value: string | number[] | ArrayBuffer | Uint8Array, options?: { encoding?: 'hex' }): string {\n if (typeof value == 'string') {\n if (options && options.encoding === 'hex' && typeof value == 'string') {\n let mutValue = value\n if (mutValue.length > 2 && mutValue.substr(0, 2) === '0x') {\n mutValue = mutValue.substr(2)\n }\n const t = hexToBytes(mutValue)\n return keccak256(t)\n } else {\n return keccak256(stringToUtf8Bytes(value))\n }\n }\n\n return keccak256(value)\n}\n\nlet unitMap = {\n noether: '0',\n wei: '1',\n kwei: '1000',\n Kwei: '1000',\n babbage: '1000',\n femtoether: '1000',\n mwei: '1000000',\n Mwei: '1000000',\n lovelace: '1000000',\n picoether: '1000000',\n gwei: '1000000000',\n Gwei: '1000000000',\n shannon: '1000000000',\n nanoether: '1000000000',\n nano: '1000000000',\n szabo: '1000000000000',\n microether: '1000000000000',\n micro: '1000000000000',\n finney: '1000000000000000',\n milliether: '1000000000000000',\n milli: '1000000000000000',\n ether: '1000000000000000000',\n kether: '1000000000000000000000',\n grand: '1000000000000000000000',\n mether: '1000000000000000000000000',\n gether: '1000000000000000000000000000',\n tether: '1000000000000000000000000000000'\n}\n\nexport type Unit = keyof typeof unitMap\n\n/**\n * @public\n * Should be called to pad string to expected length\n */\nexport function padLeft(str: string, chars: number, sign?: string) {\n return new Array(chars - str.length + 1).join(sign ? sign : '0') + str\n}\n\n/**\n * @public\n * Should be called to pad string to expected length\n */\nexport function padRight(str: string, chars: number, sign?: string) {\n return str + new Array(chars - str.length + 1).join(sign ? sign : '0')\n}\n\n/**\n * @public\n * Should be called to get ascii from it's hex representation\n */\nexport function toAscii(hex: string) {\n // Find termination\n let str = ''\n let i = 0\n let l = hex.length\n if (hex.substring(0, 2) === '0x') {\n i = 2\n }\n for (; i < l; i += 2) {\n let code = parseInt(hex.substr(i, 2), 16)\n str += String.fromCharCode(code)\n }\n\n return str\n}\n\n/**\n * @public\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n */\nexport function fromAscii(str: string, num: number = 0) {\n let hex = ''\n for (let i = 0; i < str.length; i++) {\n let code = str.charCodeAt(i)\n let n = code.toString(16)\n hex += n.length < 2 ? '0' + n : n\n }\n\n return '0x' + hex.padEnd(num, '0')\n}\n\n/**\n * @public\n * Should be used to create full function/event name from json abi\n */\nexport function transformToFullName(json: AbiItem) {\n if (isObject(json) && json.name && json.name.indexOf('(') !== -1) {\n return json.name\n }\n\n return json.name + '(' + _flattenTypes(false, json.inputs || []).join(',') + ')'\n}\n\nexport function concatBytes(...buffers: Uint8Array[]) {\n const length = buffers.reduce(($, buf) => $ + buf.length, 0)\n var mergedArray = new Uint8Array(length)\n let cursor = 0\n for (let buf of buffers) {\n mergedArray.set(buf, cursor)\n cursor += buf.length\n }\n return mergedArray\n}\n\n/**\n * Should be used to flatten json abi inputs/outputs into an array of type-representing-strings\n *\n * @method _flattenTypes\n * @param {bool} includeTuple\n * @param {Object} puts\n * @return {Array} parameters as strings\n */\nfunction _flattenTypes(includeTuple: boolean, puts: AbiInput[]) {\n const types: string[] = []\n\n puts.forEach(function (param) {\n if (typeof param.components === 'object') {\n if (param.type.substring(0, 5) !== 'tuple') {\n throw new Error('components found but type is not tuple; report on GitHub')\n }\n var suffix = ''\n var arrayBracket = param.type.indexOf('[')\n if (arrayBracket >= 0) {\n suffix = param.type.substring(arrayBracket)\n }\n var result = _flattenTypes(includeTuple, param.components)\n if (isArray(result) && includeTuple) {\n types.push('tuple(' + result.join(',') + ')' + suffix)\n } else if (!includeTuple) {\n types.push('(' + result.join(',') + ')' + suffix)\n } else {\n types.push('(' + result + ')')\n }\n } else {\n types.push(param.type)\n }\n })\n\n return types\n}\n\n/**\n * @public\n * Should be called to get display name of contract function\n */\nexport function extractDisplayName(name: string) {\n let stBracket = name.indexOf('(')\n let endBracket = name.indexOf(')')\n return stBracket !== -1 && endBracket !== -1 ? name.substr(0, stBracket) : name\n}\n\n/**\n * @public\n * Should be called to get type name of contract function\n */\nexport function extractTypeName(name: string) {\n let stBracket = name.indexOf('(')\n let endBracket = name.indexOf(')')\n return stBracket !== -1 && endBracket !== -1\n ? name.substr(stBracket + 1, endBracket - stBracket - 1).replace(' ', '')\n : ''\n}\n\n/**\n * @public\n * Converts value to it's decimal representation in string\n */\nexport function isHex(value: string) {\n if (typeof value === 'string') {\n return /^0x[0-9a-fA-F]+$/.test(value)\n } else return false\n}\n\n/**\n * @public\n * Converts value to it's decimal representation in string\n */\nexport function toNullDecimal(value: BigNumber.Value) {\n if (value === undefined || value === null) return value\n return toBigNumber(value).toNumber()\n}\n\n/**\n * @public\n * Converts value to it's decimal representation in string\n */\nexport function toDecimal(value: BigNumber.Value) {\n return toBigNumber(value).toNumber()\n}\n\n/**\n * @public\n * Converts value to string\n */\nexport function toString(value: BigNumber.Value) {\n if (isBigNumber(value)) return (value as BigNumber).toString(10)\n return '' + value\n}\n\n/**\n * @public\n * Converts value to it's hex representation in string\n */\nexport function toData(val: BigNumber.Value) {\n if (typeof val === 'string') {\n if (!val.startsWith('0x') && /^[A-Za-z0-9]+$/.test(val)) {\n return '0x' + val\n }\n }\n return toHex(val)\n}\n\n/**\n * @public\n * Converts value to it's boolean representation (x != 0)\n */\nexport function toBoolean(value: BigNumber.Value | boolean) {\n if (typeof value === 'boolean') return value\n return toBigNumber(value).toNumber() !== 0\n}\n\n/**\n * @public\n * Converts value to it's hex representation\n */\nexport function fromDecimal(value: BigNumber.Value) {\n let num = toBigNumber(value)\n let result = num.toString(16)\n\n return num.isLessThan(0) ? '-0x' + result.substr(1) : '0x' + result\n}\n\n/**\n * @public\n * Auto converts any given value into it's hex representation.\n *\n * And even stringifys objects before.\n */\nexport function toHex(val: BigNumber.Value | boolean | Uint8Array) {\n if (isBoolean(val)) return fromDecimal(+val)\n\n if (isBigNumber(val)) return fromDecimal(val)\n\n // if its a negative number, pass it through fromDecimal\n if (isString(val)) {\n const valStr = val as string\n if (valStr.indexOf('-0x') === 0) return fromDecimal(valStr)\n else if (valStr.indexOf('0x') === 0) return valStr\n else if (!isFinite(valStr as any)) return bytesToHex(stringToUtf8Bytes(valStr))\n }\n\n if (val instanceof Uint8Array) return '0x' + bytesToHex(val)\n\n if (isArray(val) || isObject(val)) {\n throw new Error('toHex can only be called with scalar values, not objects or arrays')\n }\n\n return fromDecimal(val)\n}\n\n/**\n * @public\n * Returns value of unit in Wei\n */\nexport function getValueOfUnit(_unit: Unit): BigNumber {\n let unit: Unit = _unit ? (_unit.toLowerCase() as Unit) : 'ether'\n let unitValue = unitMap[unit]\n if (unitValue === undefined) {\n throw new Error(\n \"This unit doesn't exists, please use the one of the following units\" + JSON.stringify(unitMap, null, 2)\n )\n }\n return new BigNumber(unitValue, 10)\n}\n\n/**\n * @public\n * Takes a number of wei and converts it to any other ether unit.\n *\n * Possible units are:\n * SI Short SI Full Effigy Other\n * - kwei femtoether babbage\n * - mwei picoether lovelace\n * - gwei nanoether shannon nano\n * - -- microether szabo micro\n * - -- milliether finney milli\n * - ether -- --\n * - kether -- grand\n * - mether\n * - gether\n * - tether\n *\n */\nexport function fromWei(num: BigNumber, unit: Unit): BigNumber\nexport function fromWei(num: string | number, unit: Unit): string\nexport function fromWei(num: BigNumber.Value, unit: Unit) {\n let returnValue = toBigNumber(num).dividedBy(getValueOfUnit(unit))\n\n return isBigNumber(num) ? returnValue : returnValue.toString(10)\n}\n\n/**\n * @public\n * Takes a number of a unit and converts it to wei.\n *\n * Possible units are:\n * SI Short SI Full Effigy Other\n * - kwei femtoether babbage\n * - mwei picoether lovelace\n * - gwei nanoether shannon nano\n * - -- microether szabo micro\n * - -- milliether finney milli\n * - ether -- --\n * - kether -- grand\n * - mether\n * - gether\n * - tether\n */\nexport function toWei(num: number | string, unit: Unit) {\n let returnValue = toBigNumber(num).times(getValueOfUnit(unit))\n\n return isBigNumber(num) ? returnValue : returnValue.toString(10)\n}\n\n/**\n * @public\n * Takes an input and transforms it into an bignumber\n */\nexport function toBigNumber(_num: BigNumber.Value): BigNumber {\n let num: any = _num || 0\n\n if (isBigNumber(num)) {\n return num as BigNumber\n }\n\n if (typeof num === 'string') {\n num = num.trim()\n }\n\n if (typeof num === 'string' && (num.indexOf('0x') === 0 || num.indexOf('-0x') === 0)) {\n return new BigNumber(num.replace('0x', '').toLowerCase(), 16)\n }\n\n if (num instanceof Uint8Array) {\n return new BigNumber(bytesToHex(num), 16)\n }\n\n return new BigNumber(num, 10)\n}\n\nfunction bitMask(bits: number) {\n return new BigNumber(new Array(bits).fill('1').join(''), 2)\n}\n\n/**\n * @public\n * Takes and input transforms it into bignumber and if it is negative value, into two's complement\n */\nexport function toTwosComplement(num: BigNumber.Value, bits = 256): BigNumber {\n let bigNumber = toBigNumber(num).integerValue() as BigNumber\n\n if (bigNumber.isLessThan(0)) {\n const mask = bitMask(bits)\n return mask.plus(bigNumber).plus(1)\n }\n\n return bigNumber\n}\n\n/**\n * Check if input value is negative in twos complement\n */\nexport function signedIsNegative(value: BigNumber, bits: number) {\n const binary = padLeft(value.toString(2), bits, '0')\n return binary[0] == '1'\n}\n\n/**\n * @public\n */\nexport function getAddress(address: string): string {\n if (typeof address !== 'string') {\n throw errors.error('invalid address', errors.INVALID_ARGUMENT, { arg: 'address', value: address })\n }\n\n if (address.trim().match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.trim().substring(0, 2) !== '0x') {\n address = '0x' + address\n }\n\n return toChecksumAddress(address)\n } else {\n throw errors.error('invalid address', errors.INVALID_ARGUMENT, { arg: 'address', value: address })\n }\n}\n\n/**\n * @public\n * If the bit N is 1\n */\nexport function fromTwosComplement(num: BigNumber, bits = 256): BigNumber {\n // check if it's negative number\n // it it is, return two's complement\n if (signedIsNegative(num, bits)) {\n const mask = bitMask(bits)\n return num.minus(mask).minus(1)\n }\n return num\n}\n\n/**\n * @public\n * Checks if the given string is strictly an address\n */\nexport function isStrictAddress(address: any) {\n return /^0x[0-9a-f]{40}$/i.test(address)\n}\n\n/**\n * @public\n * Checks if the given string is an address\n */\nexport function isAddress(address: any) {\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n // check if it has the basic requirements of an address\n return false\n } else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n // If it's all small caps or all all caps, return true\n return true\n } else {\n // Otherwise check each case\n return isChecksumAddress(address)\n }\n}\n\n/**\n * @public\n * Checks if the given string is a checksummed address\n */\nexport function isChecksumAddress(_address: string) {\n // Check each case\n const address = _address.replace('0x', '')\n let addressHash = sha3(address.toLowerCase())\n\n for (let i = 0; i < 40; i++) {\n // the nth letter should be uppercase if the nth digit of casemap is 1\n if (\n (parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i]) ||\n (parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i])\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @public\n * Makes a checksum address\n */\nexport function toChecksumAddress(_address: string) {\n if (typeof _address === 'undefined') return ''\n\n const address = _address.toLowerCase().replace('0x', '')\n const addressHash = sha3(address)\n let checksumAddress = '0x'\n\n for (let i = 0; i < address.length; i++) {\n // If ith character is 9 to f then make it uppercase\n if (parseInt(addressHash[i], 16) > 7) {\n checksumAddress += address[i].toUpperCase()\n } else {\n checksumAddress += address[i]\n }\n }\n return checksumAddress\n}\n\n/**\n * @public\n * Ensures the result will be an array\n */\nexport function toArray(value: any): any[] {\n if (!Array.isArray(value)) {\n throw new Error(`Value was not an array: ${JSON.stringify(value)}`)\n }\n return value\n}\n\n/**\n * @public\n * Transforms given string to valid 20 bytes-length addres with 0x prefix\n */\nexport function toAddress(address: string) {\n if (isStrictAddress(address)) {\n return address\n }\n\n if (/^[0-9a-f]{40}$/.test(address)) {\n return '0x' + address\n }\n\n return '0x' + padLeft(toHex(address).substr(2), 40)\n}\n\n/**\n * @public\n * Returns true if object is BigNumber, otherwise false\n */\nexport function isBigNumber(object: any): object is BigNumber {\n return object instanceof BigNumber\n}\n\n/**\n * @public\n * Returns true if object is string, otherwise false\n */\nexport function isString(value: any): value is string {\n return typeof value === 'string' || (value && value.constructor && value.constructor.name === 'String')\n}\n\n/**\n * @public\n * Returns true if object is function, otherwise false\n */\nexport function isFunction(object: any): object is CallableFunction {\n return typeof object === 'function'\n}\n\n/**\n * @public\n * Returns true if object is Objet, otherwise false\n */\nexport function isObject<T extends object>(object: any): object is T {\n return object !== null && !Array.isArray(object) && typeof object === 'object'\n}\n\n/**\n * @public\n * Returns true if object is boolean, otherwise false\n */\nexport function isBoolean(object: any): object is boolean {\n return typeof object === 'boolean'\n}\n\n/**\n * @public\n * Returns true if object is array, otherwise false\n */\nexport function isArray<T extends Array<any>>(object: any): object is T {\n return Array.isArray(object)\n}\n\n/**\n * @public\n * Returns true if given string is valid json object\n */\nexport function isJson(str: string) {\n try {\n return !!JSON.parse(str)\n } catch (e) {\n return false\n }\n}\n\n/**\n * @public\n * Returns true if given string is a valid Ethereum block header bloom.\n */\nexport function isBloom(bloom: string) {\n if (!/^(0x)?[0-9a-f]{512}$/i.test(bloom)) {\n return false\n } else if (/^(0x)?[0-9a-f]{512}$/i.test(bloom)) {\n return true\n }\n return false\n}\n\n/**\n * @public\n * Returns true if given string is a valid log topic.\n */\nexport function isTopic(topic: string) {\n if (!/^(0x)?[0-9a-f]{64}$/i.test(topic)) {\n return false\n } else if (/^(0x)?[0-9a-f]{64}$/i.test(topic)) {\n return true\n }\n return false\n}\n","import { BigNumber } from './utils/BigNumber'\n\n/**\n * Hex string\n * @public\n */\nexport type Data = string\n\n/**\n * Hex string of 32 bytes\n * @public\n */\nexport type TxHash = string\n/**\n * Hex string of 20 bytes\n * @public\n */\nexport type Address = string\n/**\n * @public\n */\nexport type Hex = string\n/**\n * @public\n */\nexport type Quantity = number | Hex\n\n/**\n * @public\n */\nexport type Syncing = {\n startingBlock: Quantity\n currentBlock: Quantity\n highestBlock: Quantity\n\n // @internal\n knownStates?: Quantity\n // @internal\n pulledStates?: Quantity\n}\n\n/**\n * @public\n */\nexport enum TransactionStatus {\n pending = 'pending',\n confirmed = 'confirmed',\n failed = 'failed'\n}\n\n/**\n * @public\n */\nexport type Tag = 'latest' | 'earliest' | 'pending'\n\n/**\n * @public\n */\nexport type TransactionOptions = {\n /**\n * The address the transaction is sent from.\n */\n from: Address\n\n /**\n * The address the transaction is directed to.\n */\n to: Address\n\n /**\n * Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter\n * may be needed by some executions.\n *\n * Default: 90000\n */\n gas?: BigNumber.Value\n\n /**\n * Integer of the gasPrice used for each paid gas\n */\n gasPrice?: BigNumber.Value\n\n /**\n * Integer of the value sent with this transaction\n */\n value?: BigNumber.Value\n\n /**\n * The compiled code of a contract OR the hash of the invoked method signature and encoded parameters.\n * For details see Ethereum Contract ABI\n */\n data: string\n\n /** Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce. */\n nonce?: BigNumber.Value\n}\n\n/**\n * @public\n */\nexport type TransactionCallOptions = {\n /**\n * The address the transaction is sent from.\n */\n from?: Address\n\n /**\n * The address the transaction is directed to.\n */\n to: Address\n\n /**\n * Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter\n * may be needed by some executions.\n *\n * Default: 90000\n */\n gas?: BigNumber.Value\n\n /**\n * Integer of the gasPrice used for each paid gas\n */\n gasPrice?: BigNumber.Value\n\n /**\n * Integer of the value sent with this transaction\n */\n value?: BigNumber.Value\n\n /**\n * The compiled code of a contract OR the hash of the invoked method signature and encoded parameters.\n * For details see Ethereum Contract ABI\n */\n data?: string\n}\n\n/**\n * @public\n */\nexport type BlockObject = {\n /** the block number. null when its pending block. */\n number: Quantity\n /** hash of the block. null when its pending block. */\n hash: TxHash\n /** hash of the parent block. */\n parentHash: TxHash\n /** hash of the generated proof-of-work. null when its pending block. 8 Bytes */\n nonce: Data\n /** SHA3 of the uncles data in the block. */\n sha3Uncles: TxHash\n /** the bloom filter for the logs of the block. null when its pending block. 256 Bytes */\n logsBloom: Data\n /** the root of the transaction trie of the block. */\n transactionsRoot: TxHash\n /** the root of the final state trie of the block. */\n stateRoot: TxHash\n /** the root of the receipts trie of the block. */\n receiptsRoot: TxHash\n /** the address of the beneficiary to whom the mining rewards were given. */\n miner: Address\n /** integer of the difficulty for this block. */\n difficulty: BigNumber\n /** integer of the total difficulty of the chain until this block. */\n totalDifficulty: BigNumber\n /** the \"extra data\" field of this block. */\n extraData: Data\n /** integer the size of this block in bytes. */\n size: Quantity\n /** the maximum gas allowed in this block. */\n gasLimit: Quantity\n /** the total used gas by all transactions in this block. */\n gasUsed: Quantity\n /** the unix timestamp for when the block was collated. */\n timestamp: Quantity\n /** Array of transaction objects, or 32 Bytes transaction hashes depending on the last given parameter. */\n transactions: Array<TxHash> | Array<TransactionObject>\n /** Array of uncle hashes */\n uncles: Array<TxHash>\n}\n\n/**\n * @public\n */\nexport type TransactionObject = {\n /** hash of the transaction. */\n hash: TxHash\n /** the number of transactions made by the sender prior to this one. */\n nonce: number\n /** hash of the block where this transaction was in. null when its pending. */\n blockHash: TxHash\n /** block number where this transaction was in. null when its pending. */\n blockNumber: number\n /** integer of the transactions index position in the block. null when its pending. */\n transactionIndex: number\n /** address of the sender. */\n from: Address\n /** address of the receiver. null when its a contract creation transaction. */\n to: Address | null\n /** value transferred in Wei. */\n value: BigNumber\n /** gas price provided by the sender in Wei. */\n gasPrice: BigNumber\n /** gas provided by the sender. */\n gas: Quantity\n /** the data send along with the transaction. */\n input: Data\n\n v?: Data\n r?: Data\n s?: Data\n}\n\n/**\n * @public\n */\nexport type Transaction =\n | DroppedTransaction\n | ReplacedTransaction\n | QueuedTransaction\n | PendingTransaction\n | ConfirmedTransaction\n | RevertedTransaction\n\n/**\n * @public\n */\nexport enum TransactionType {\n queued = 'queued',\n dropped = 'dropped',\n replaced = 'replaced',\n pending = 'pending',\n reverted = 'reverted',\n confirmed = 'confirmed'\n}\n\n/**\n * @public\n */\nexport type DroppedTransaction = {\n type: TransactionType.dropped\n hash: string\n nonce: number\n}\n\n/**\n * @public\n */\nexport type ReplacedTransaction = {\n type: TransactionType.replaced\n hash: string\n nonce: number\n}\n\n/**\n * @public\n */\nexport type QueuedTransaction = {\n type: TransactionType.queued\n hash: string\n nonce: number\n}\n\n/**\n * @public\n */\nexport type PendingTransaction = TransactionObject & {\n type: TransactionType.pending\n}\n\n/**\n * @public\n */\nexport type RevertedTransaction = TransactionObject & {\n type: TransactionType.reverted\n}\n\n/**\n * @public\n */\nexport type ConfirmedTransaction = TransactionObject & {\n type: TransactionType.confirmed\n receipt: TransactionReceipt\n}\n\n/**\n * @public\n */\nexport type TransactionAndReceipt = TransactionObject & { receipt: TransactionReceipt }\n/**\n * @public\n */\nexport type FinishedTransactionAndReceipt = TransactionAndReceipt & { status: TransactionStatus }\n/**\n * @public\n */\nexport type BlockIdentifier = Quantity | Tag\n\nexport type TopicFilter = Array<Data | null | TopicFilter>\n\n/**\n * @public\n */\nexport type FilterOptions = {\n /** (optional, default: \"latest\") Integer block number, or \"latest\" for the last mined block or \"pending\", \"earliest\" for not yet mined transactions. */\n fromBlock?: BlockIdentifier\n /** (optional, default: \"latest\") Integer block number, or \"latest\" for the last mined block or \"pending\", \"earliest\" for not yet mined transactions. */\n toBlock?: BlockIdentifier\n /** (optional) Contract address or a list of addresses from which logs should originate. */\n address?: Data | Address\n /** (optional) Array of 32 Bytes DATA topics. Topics are order-dependent. Each topic can also be an array of DATA with \"or\" options. */\n topics?: TopicFilter\n}\n\n/**\n * @public\n */\nexport type TransactionReceipt = {\n /** hash of the transaction. */\n transactionHash: TxHash\n /** integer of the transactions index position in the block. */\n transactionIndex: Quantity\n /** hash of the block where this transaction was in. */\n blockHash: TxHash\n /** block number where this transaction was in. */\n blockNumber: Quantity\n /** The total amount of gas used when this transaction was executed in the block. */\n cumulativeGasUsed: Quantity\n /** The amount of gas used by this specific transaction alone. */\n gasUsed: Quantity\n /** The contract address created, if the transaction was a contract creation, otherwise null. */\n contractAddress: Address\n /** Array of log objects, which this transaction generated. */\n logs: Array<LogObject>\n /** 256 Bytes - Bloom filter for light clients to quickly retrieve related logs. */\n logsBloom: Data\n /** post-transaction stateroot (pre Byzantium) */\n root?: TxHash\n /** either 1 (success) or 0 (failure) */\n status?: Quantity\n}\n\n/**\n * @public\n */\nexport type LogObject = {\n /** true when the log was removed, due to a chain reorganization. false if its a valid log. */\n removed: boolean\n /** integer of the log index position in the block. null when its pending log. */\n logIndex: Quantity\n /** integer of the transactions index position log was created from. null when its pending log. */\n transactionIndex: Quantity\n /** hash of the transactions this log was created from. null when its pending log. */\n transactionHash: TxHash\n /** hash of the block where this log was in. null when its pending. null when its pending log. */\n blockHash: TxHash\n /** the block number where this log was in. null when its pending. null when its pending log. */\n blockNumber: Quantity\n /** address from which this log originated. */\n address: Address\n /** contains one or more 32 Bytes non-indexed arguments of the log. */\n data: Data\n /**\n * Array of 0 to 4 32 Bytes DATA of indexed log arguments. (In solidity: The first topic is the hash of the signature\n * of the event (e.g. Deposit(address,bytes32,uint256)), except you declared the event with the anonymous specifier.)\n */\n topics: Array<Data>\n}\n\n/**\n * @public\n */\nexport type SHHPost = {\n /** (optional) The identity of the sender. */\n from: Data\n /** (optional) The identity of the receiver. When present whisper will encrypt the message so that only the receiver can decrypt it. */\n to: Data\n /** Array of DATA topics, for the receiver to identify messages. */\n topics: Array<Data>\n /** The payload of the message. */\n payload: Data\n /** The integer of the priority in a rang from ... (?). */\n priority: Quantity\n /** integer of the time to live in seconds. */\n ttl: Quantity\n}\n\n/**\n * @public\n */\nexport type SHHFilterOptions = {\n /**\n * (optional) Identity of the receiver. When present it will try to decrypt any incoming message if the client holds the private key to this identity.\n */\n to?: Data\n /**\n * Array of DATA topics which the incoming message's topics should match. You can use the following combinations:\n * [A, B] = A && B\n * [A, [B, C]] = A && (B || C)\n * [null, A, B] = ANYTHING && A && B null works as a wildcard\n */\n topics: TopicFilter\n}\n\n/**\n * @public\n */\nexport type SHHFilterMessage = {\n /** The hash of the message. */\n hash: TxHash\n /** The sender of the message, if a sender was specified. */\n from: Data\n /** The receiver of the message, if a receiver was specified. */\n to: Data\n /** Integer of the time in seconds when this message should expire (?). */\n expiry: Quantity\n /** Integer of the time the message should float in the system in seconds (?). */\n ttl: Quantity\n /** Integer of the unix timestamp when the message was sent. */\n sent: Quantity\n /** Array of DATA topics the message contained. */\n topics: Array<Data>\n /** The payload of the message. */\n payload: Data\n /** Integer of the work this message required before it was send (?). */\n workProved: Quantity\n}\n\n/**\n * @public\n */\nexport type EventData = {\n data: string\n topics: string[]\n address: string\n}\n\n/**\n * @public\n */\nexport type AbiType = 'function' | 'constructor' | 'event' | 'fallback'\n\n/**\n * @public\n */\nexport type StateMutabilityType = 'pure' | 'view' | 'nonpayable' | 'payable'\n\n/**\n * @public\n */\nexport type AbiItem = AbiFunction | AbiEvent | AbiConstructor | AbiFallback | AbiItemGeneric\n\n/**\n * @public\n */\nexport interface AbiFunction {\n type: 'function'\n anonymous?: boolean\n constant?: boolean\n inputs?: AbiInput[]\n name?: string\n outputs?: AbiOutput[]\n payable?: boolean\n stateMutability?: StateMutabilityType\n gas?: number\n}\n\n/**\n * @public\n */\nexport interface AbiEvent {\n type: 'event'\n anonymous?: boolean\n constant?: boolean\n inputs?: AbiInput[]\n name?: string\n outputs?: AbiOutput[]\n payable?: boolean\n stateMutability?: StateMutabilityType\n gas?: number\n}\n\n/**\n * @public\n */\nexport interface AbiFallback {\n type: 'fallback'\n anonymous?: boolean\n constant?: boolean\n inputs?: AbiInput[]\n name?: string\n outputs?: AbiOutput[]\n payable?: boolean\n stateMutability?: StateMutabilityType\n gas?: number\n}\n\n/**\n * @public\n */\nexport interface AbiItemGeneric {\n type: string\n anonymous?: boolean\n constant?: boolean\n inputs?: AbiInput[]\n name?: string\n outputs?: AbiOutput[]\n payable?: boolean\n stateMutability?: StateMutabilityType\n gas?: number\n}\n\n/**\n * @public\n */\nexport interface AbiConstructor {\n type: 'constructor'\n anonymous?: boolean\n constant?: boolean\n inputs?: AbiInput[]\n name?: string\n outputs?: AbiOutput[]\n payable?: boolean\n stateMutability?: StateMutabilityType\n gas?: number\n}\n\n\n/**\n * @public\n */\n export interface AbiOutput {\n name: string\n type: string\n components?: AbiOutput[]\n internalType?: string\n}\n\n/**\n * @public\n */\nexport interface AbiInput extends AbiOutput {\n indexed?: boolean\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { RPCResponse } from '../providers/common'\n\nexport let messageId = 0\n\nexport type RPCSendableMessage = {\n method: string\n params: any[]\n}\n\n/**\n * Should be called to valid json create payload object\n */\nexport function toJsonRpcRequest(method: string, params: any[]) {\n if (!method) {\n throw new Error('jsonrpc method should be specified!')\n }\n\n if (typeof method !== 'string') {\n throw new Error(`jsonrpc must be a string, got ${typeof method}!`)\n }\n // advance message ID\n messageId++\n\n return {\n jsonrpc: '2.0',\n id: messageId,\n method: method,\n params: params || []\n }\n}\n\n/**\n * Should be called to check if jsonrpc response is valid\n */\nexport function isValidResponse(response: RPCResponse | RPCResponse[]) {\n return Array.isArray(response) ? response.every(validateSingleMessage) : validateSingleMessage(response)\n\n function validateSingleMessage(message: RPCResponse) {\n return (\n !!message &&\n !('error' in message) &&\n message.jsonrpc === '2.0' &&\n typeof message.id === 'number' &&\n (message.result != null || message.result !== undefined)\n ) // only undefined is not valid json object\n // the null is not a valid response for rpc nodes\n }\n}\n\n/**\n * Should be called to create batch payload object\n *\n * @param messages - An array of objects with method (required) and params (optional) fields\n */\nexport function toBatchPayload(messages: RPCSendableMessage[]) {\n return messages.map(function (message) {\n return toJsonRpcRequest(message.method, message.params)\n })\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport * as utils from '../utils/utils'\nimport * as config from '../utils/config'\nimport {\n BlockObject,\n FilterOptions,\n LogObject,\n Quantity,\n SHHFilterMessage,\n Syncing,\n Tag,\n TransactionObject,\n TransactionOptions,\n TransactionReceipt\n} from '../Schema'\nimport { BigNumber } from './BigNumber'\nimport { stringToUtf8Bytes } from './utf8'\n\n/**\n * Should format the output to a big number\n *\n * @param output - The provided output\n */\nexport function outputBigNumberFormatter(output: BigNumber.Value): BigNumber {\n return utils.toBigNumber(output)\n}\n\n/**\n * Returns true if the provided blockNumber is 'latest', 'pending' or 'earliest\n *\n * @param blockNumber - The given blocknumber\n */\nexport function isPredefinedBlockNumber(blockNumber: Quantity | Tag): blockNumber is Tag {\n return blockNumber === 'latest' || blockNumber === 'pending' || blockNumber === 'earliest'\n}\n\nexport function inputDefaultBlockNumberFormatter(blockNumber?: Quantity | Tag): string | Tag | null {\n if (blockNumber === undefined) {\n return config.defaultBlock\n }\n return inputBlockNumberFormatter(blockNumber)\n}\n\nexport function inputBlockNumberFormatter(blockNumber: Quantity | Tag | null): string | null {\n if (blockNumber === undefined || blockNumber == null) {\n return null\n } else if (isPredefinedBlockNumber(blockNumber)) {\n return blockNumber\n }\n return utils.toHex(blockNumber)\n}\n\n/**\n * Formats the input of a transaction and converts all values to HEX\n */\nexport function inputCallFormatter(options: TransactionOptions) {\n options.from = options.from\n\n if (options.from) {\n options.from = inputAddressFormatter(options.from)\n }\n\n if (options.to) {\n // it might be contract creation\n options.to = inputAddressFormatter(options.to)\n }\n\n if (options.gasPrice !== undefined) options.gasPrice = utils.fromDecimal(options.gasPrice)\n if (options.gas !== undefined) options.gas = utils.fromDecimal(options.gas)\n if (options.value !== undefined) options.value = utils.fromDecimal(options.value)\n if (options.nonce !== undefined) options.nonce = utils.fromDecimal(options.nonce)\n\n if (options.data && !options.data.startsWith('0x') && /^[A-Za-z0-9]+$/.test(options.data)) {\n options.data = '0x' + options.data\n }\n\n return options\n}\n\n/**\n * Ensures a correct transactionId is provided\n */\nexport function inputTransactionId(txId: string) {\n if (typeof txId != 'string') {\n throw new Error('The provided input for transactionId is not a string, got: ' + JSON.stringify(txId))\n }\n\n if (txId.indexOf('0x') !== 0){\n throw new Error('TransactionID must start with 0x, got: ' + JSON.stringify(txId))\n }\n\n if (txId.length !== 66){\n throw new Error('TransactionID must be a 32 byte hex, got: ' + JSON.stringify(txId))\n }\n\n return txId\n}\n\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @param transaction - options\n */\nexport function inputTransactionFormatter(options: TransactionOptions) {\n if (typeof options !== 'object') {\n throw new Error('Did not provide transaction options')\n }\n\n if (!options.from) {\n throw new Error('Missing \"from\" in transaction options')\n }\n\n options.from = inputAddressFormatter(options.from)\n\n if (options.to) {\n // it might be contract creation\n options.to = inputAddressFormatter(options.to)\n }\n\n if (options.gasPrice !== undefined) options.gasPrice = utils.fromDecimal(options.gasPrice)\n if (options.gas !== undefined) options.gas = utils.fromDecimal(options.gas)\n if (options.value !== undefined) options.value = utils.fromDecimal(options.value)\n if (options.nonce !== undefined) options.nonce = utils.fromDecimal(options.nonce)\n\n if (options.data && !options.data.startsWith('0x') && /^[A-Za-z0-9]+$/.test(options.data)) {\n options.data = '0x' + options.data\n }\n\n return options\n}\n\n/**\n * Formats the output of a transaction to its proper values\n *\n * @param tx - The transaction\n */\nexport function outputTransactionFormatter(tx: TransactionObject) {\n if (!tx) return null\n\n if (tx.blockNumber !== null) {\n tx.blockNumber = utils.toDecimal(tx.blockNumber)\n }\n if (tx.transactionIndex !== null) {\n tx.transactionIndex = utils.toDecimal(tx.transactionIndex)\n }\n tx.nonce = utils.toDecimal(tx.nonce)\n tx.gas = utils.toDecimal(tx.gas)\n tx.gasPrice = utils.toBigNumber(tx.gasPrice)\n tx.value = utils.toBigNumber(tx.value)\n return tx\n}\n\n/**\n * Formats the output of a transaction receipt to its proper values\n *\n * @param receipt - The transaction receipt\n */\nexport function outputTransactionReceiptFormatter(receipt: TransactionReceipt) {\n if (!receipt) return null\n\n if (receipt.blockNumber !== null) receipt.blockNumber = utils.toDecimal(receipt.blockNumber)\n if (receipt.transactionIndex !== null) receipt.transactionIndex = utils.toDecimal(receipt.transactionIndex)\n\n receipt.cumulativeGasUsed = utils.toDecimal(receipt.cumulativeGasUsed)\n receipt.gasUsed = utils.toDecimal(receipt.gasUsed)\n\n if (receipt.logs && utils.isArray(receipt.logs)) {\n receipt.logs = receipt.logs.map(function (log) {\n return outputLogFormatter(log)\n })\n }\n\n receipt.status = utils.toDecimal(receipt.status || '')\n\n return receipt\n}\n\n/**\n * Formats the output of a block to its proper value\n */\nexport function outputBlockFormatter(block: BlockObject | null) {\n if (!block) return null\n // transform to number\n block.gasLimit = utils.toDecimal(block.gasLimit)\n block.gasUsed = utils.toDecimal(block.gasUsed)\n block.size = utils.toDecimal(block.size)\n block.timestamp = utils.toDecimal(block.timestamp)\n if (block.number !== null) block.number = utils.toDecimal(block.number)\n\n block.difficulty = utils.toBigNumber(block.difficulty)\n block.totalDifficulty = utils.toBigNumber(block.totalDifficulty)\n\n if (utils.isArray(block.transactions)) {\n block.transactions.forEach(function (item: string | TransactionObject, ix: number) {\n if (!utils.isString(item)) {\n block.transactions[ix] = outputTransactionFormatter(item) || block.transactions[ix]\n }\n })\n }\n\n return block\n}\n\n/**\n * Formats the output of a log\n */\nexport function outputLogFormatter(log: LogObject) {\n if (!log) return log\n\n if (log.blockNumber) {\n log.blockNumber = utils.toDecimal(log.blockNumber)\n }\n\n if (log.transactionIndex) {\n log.transactionIndex = utils.toDecimal(log.transactionIndex)\n }\n\n if (log.logIndex) {\n log.logIndex = utils.toDecimal(log.logIndex)\n }\n\n return log\n}\n\n/**\n * Formats the input of a whisper post and converts all values to HEX\n */\nexport function inputPostFormatter(post: any) {\n if (!post) return null\n\n post.ttl = utils.fromDecimal(post.ttl)\n post.workToProve = utils.fromDecimal(post.workToProve)\n post.priority = utils.fromDecimal(post.priority)\n\n // fallback\n if (!utils.isArray(post.topics)) {\n post.topics = post.topics ? [post.topics as string] : []\n }\n\n // format the following options\n post.topics = post.topics.map(function (topic: string) {\n // convert only if not hex\n return topic.indexOf('0x') === 0 ? topic : '0x' + utils.bytesToHex(stringToUtf8Bytes(topic))\n })\n\n return post\n}\n\n/**\n * Formats the output of a received post message\n */\nexport function outputPostFormatter(post: SHHFilterMessage) {\n if (!post) return null\n\n post.expiry = utils.toDecimal(post.expiry)\n post.sent = utils.toDecimal(post.sent)\n post.ttl = utils.toDecimal(post.ttl)\n post.workProved = utils.toDecimal(post.workProved)\n\n // format the following options\n if (!post.topics) {\n post.topics = []\n }\n post.topics = post.topics.map(function (topic) {\n return utils.toAscii(topic)\n })\n\n return post\n}\n\nexport function inputAddressFormatter(address: string) {\n if (utils.isStrictAddress(address)) {\n return address\n } else if (utils.isAddress(address)) {\n return '0x' + address\n }\n throw new Error(`Invalid address: ${JSON.stringify(address)}`)\n}\n\nexport function inputFilterOptions(options: FilterOptions) {\n // TODO: validations\n return options\n}\n\nexport function outputSyncingFormatter(result: Syncing) {\n if (!result) {\n return result\n }\n\n result.startingBlock = utils.toDecimal(result.startingBlock)\n result.currentBlock = utils.toDecimal(result.currentBlock)\n result.highestBlock = utils.toDecimal(result.highestBlock)\n\n if (result.knownStates) {\n result.knownStates = utils.toDecimal(result.knownStates)\n result.pulledStates = utils.toDecimal(result.pulledStates!)\n }\n\n return result\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nexport const ETH_UNITS = [\n 'wei',\n 'kwei',\n 'Mwei',\n 'Gwei',\n 'szabo',\n 'finney',\n 'femtoether',\n 'picoether',\n 'nanoether',\n 'microether',\n 'milliether',\n 'nano',\n 'micro',\n 'milli',\n 'ether',\n 'grand',\n 'Mether',\n 'Gether',\n 'Tether',\n 'Pether',\n 'Eether',\n 'Zether',\n 'Yether',\n 'Nether',\n 'Dether',\n 'Vether',\n 'Uether'\n]\n\nexport const ETH_POLLING_TIMEOUT = 1000 / 2\nexport let defaultBlock: 'latest' = 'latest'\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n// tslint:disable:variable-name\n\nimport * as formatters from '../utils/formatters'\nimport * as utils from '../utils/utils'\nimport { Method } from '../Method'\nimport { Property } from '../Property'\nimport { BigNumber } from '../utils/BigNumber'\nimport { BlockObject, Data, Syncing, TransactionObject, TransactionReceipt } from '../Schema'\n\n/**\n * @public\n */\nexport namespace eth {\n export const eth_getBalance = new Method<BigNumber>({\n callName: 'eth_getBalance',\n params: 2,\n inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter],\n outputFormatter: formatters.outputBigNumberFormatter\n })\n\n export const eth_getStorageAt = new Method<Data>({\n callName: 'eth_getStorageAt',\n params: 3,\n inputFormatter: [formatters.inputAddressFormatter, utils.toHex, formatters.inputDefaultBlockNumberFormatter],\n outputFormatter: utils.toData\n })\n\n export const eth_getCode = new Method<Data>({\n callName: 'eth_getCode',\n params: 2,\n inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter],\n outputFormatter: utils.toData\n })\n\n export const eth_getBlockByHash = new Method<BlockObject | null>({\n callName: 'eth_getBlockByHash',\n params: 2,\n inputFormatter: [\n formatters.inputBlockNumberFormatter,\n function (val) {\n return !!val\n }\n ],\n outputFormatter: formatters.outputBlockFormatter\n })\n\n export const eth_getBlockByNumber = new Method<BlockObject | null>({\n callName: 'eth_getBlockByNumber',\n params: 2,\n inputFormatter: [\n formatters.inputBlockNumberFormatter,\n function (val) {\n return !!val\n }\n ],\n outputFormatter: formatters.outputBlockFormatter\n })\n\n export const eth_getUncleByBlockHashAndIndex = new Method<BlockObject | null>({\n callName: 'eth_getUncleByBlockHashAndIndex',\n params: 2,\n inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],\n outputFormatter: formatters.outputBlockFormatter\n })\n\n export const eth_getUncleByBlockNumberAndIndex = new Method<BlockObject | null>({\n callName: 'eth_getUncleByBlockNumberAndIndex',\n params: 2,\n inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],\n outputFormatter: formatters.outputBlockFormatter\n })\n\n export const eth_getBlockTransactionCountByHash = new Method<number>({\n callName: 'eth_getBlockTransactionCountByHash',\n params: 1,\n inputFormatter: [formatters.inputBlockNumberFormatter],\n outputFormatter: utils.toDecimal\n })\n\n export const eth_getBlockTransactionCountByNumber = new Method<number>({\n callName: 'eth_getBlockTransactionCountByNumber',\n params: 1,\n inputFormatter: [formatters.inputBlockNumberFormatter],\n outputFormatter: utils.toDecimal\n })\n\n export const eth_getUncleCountByBlockHash = new Method<number>({\n callName: 'eth_getUncleCountByBlockHash',\n params: 1,\n inputFormatter: [formatters.inputBlockNumberFormatter],\n outputFormatter: utils.toDecimal\n })\n\n export const eth_getUncleCountByBlockNumber = new Method<number>({\n callName: 'eth_getUncleCountByBlockNumber',\n params: 1,\n inputFormatter: [formatters.inputBlockNumberFormatter],\n outputFormatter: utils.toDecimal\n })\n\n export const eth_getTransactionByHash = new Method<TransactionObject | null>({\n callName: 'eth_getTransactionByHash',\n params: 1,\n inputFormatter: [formatters.inputTransactionId],\n outputFormatter: formatters.outputTransactionFormatter\n })\n\n export const eth_getTransactionByBlockHashAndIndex = new Method<TransactionObject | null>({\n callName: 'eth_getTransactionByBlockHashAndIndex',\n params: 2,\n inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],\n outputFormatter: formatters.outputTransactionFormatter\n })\n\n export const eth_getTransactionByBlockNumberAndIndex = new Method<TransactionObject | null>({\n callName: 'eth_getTransactionByBlockNumberAndIndex',\n params: 2,\n inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],\n outputFormatter: formatters.outputTransactionFormatter\n })\n\n export const eth_getTransactionReceipt = new Method<TransactionReceipt | null>({\n callName: 'eth_getTransactionReceipt',\n params: 1,\n inputFormatter: [formatters.inputTransactionId],\n outputFormatter: formatters.outputTransactionReceiptFormatter\n })\n\n export const eth_getTransactionCount = new Method<number>({\n callName: 'eth_getTransactionCount',\n params: 2,\n inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter],\n outputFormatter: utils.toDecimal\n })\n\n export const eth_sendRawTransaction = new Method<Data>({\n callName: 'eth_sendRawTransaction',\n params: 1,\n inputFormatter: [null /* signed data transaction, hex string */],\n outputFormatter: utils.toData\n })\n\n export const web3_sha3 = new Method<Data>({\n callName: 'web3_sha3',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toData\n })\n\n export const eth_sendTransaction = new Method<Data>({\n callName: 'eth_sendTransaction',\n params: 1,\n inputFormatter: [formatters.inputTransactionFormatter],\n outputFormatter: utils.toData\n })\n\n export const eth_sign = new Method<Data>({\n callName: 'eth_sign',\n params: 2,\n inputFormatter: [formatters.inputAddressFormatter, null],\n outputFormatter: utils.toData\n })\n\n export const eth_call = new Method<Data>({\n callName: 'eth_call',\n params: 2,\n inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter],\n outputFormatter: utils.toData\n })\n\n export const eth_estimateGas = new Method<number>({\n callName: 'eth_estimateGas',\n params: 1,\n inputFormatter: [formatters.inputCallFormatter],\n outputFormatter: utils.toDecimal\n })\n\n export const eth_submitWork = new Method<boolean>({\n callName: 'eth_submitWork',\n params: 3,\n inputFormatter: [\n null, // DATA, 8 Bytes - The nonce found (64 bits)\n null, // DATA, 32 Bytes - The header’s pow-hash (256 bits)\n null // DATA, 32 Bytes - The mix digest (256 bits)\n ],\n outputFormatter: utils.toBoolean\n })\n\n export const eth_getWork = new Method({\n callName: 'eth_getWork',\n params: 0,\n inputFormatter: [],\n outputFormatter: utils.toArray\n })\n\n export const eth_coinbase = new Property({\n getter: 'eth_coinbase',\n outputFormatter: utils.toAddress\n })\n\n export const eth_mining = new Property({\n getter: 'eth_mining',\n outputFormatter: utils.toBoolean\n })\n\n export const eth_hashrate = new Property({\n getter: 'eth_hashrate',\n outputFormatter: utils.toDecimal\n })\n\n export const eth_syncing = new Property<Syncing>({\n getter: 'eth_syncing',\n outputFormatter: formatters.outputSyncingFormatter\n })\n\n export const eth_gasPrice = new Property({\n getter: 'eth_gasPrice',\n outputFormatter: formatters.outputBigNumberFormatter\n })\n\n export const eth_accounts = new Property({\n getter: 'eth_accounts',\n outputFormatter: utils.toArray\n })\n\n export const eth_blockNumber = new Property({\n getter: 'eth_blockNumber',\n outputFormatter: utils.toDecimal\n })\n\n export const eth_protocolVersion = new Property({\n getter: 'eth_protocolVersion',\n outputFormatter: utils.toDecimal\n })\n\n export const web3_clientVersion = new Property({\n getter: 'web3_clientVersion',\n outputFormatter: utils.toString\n })\n\n export const net_version = new Property({\n getter: 'net_version',\n outputFormatter: utils.toString\n })\n\n export const shh_version = new Method({\n callName: 'shh_version',\n params: 0,\n inputFormatter: [],\n outputFormatter: utils.toDecimal\n })\n\n // subscribe and unsubscribe missing\n\n export const shh_post = new Method({\n callName: 'shh_post',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toBoolean\n })\n\n export const personal_newAccount = new Method({\n callName: 'personal_newAccount',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toAddress\n })\n\n export const personal_importRawKey = new Method({\n callName: 'personal_importRawKey',\n params: 2,\n inputFormatter: [null /* private key */, null /* passphrase */],\n outputFormatter: utils.toAddress\n })\n\n export const personal_sign = new Method({\n callName: 'personal_sign',\n params: 3,\n inputFormatter: [null, formatters.inputAddressFormatter, null],\n outputFormatter: utils.toData\n })\n\n export const personal_ecRecover = new Method({\n callName: 'personal_ecRecover',\n params: 2,\n inputFormatter: [null /* message */, null /* signature */],\n outputFormatter: utils.toAddress\n })\n\n export const personal_unlockAccount = new Method({\n callName: 'personal_unlockAccount',\n params: 3,\n inputFormatter: [formatters.inputAddressFormatter, null, utils.toNullDecimal],\n outputFormatter: utils.toBoolean\n })\n\n export const personal_sendTransaction = new Method({\n callName: 'personal_sendTransaction',\n params: 2,\n inputFormatter: [formatters.inputTransactionFormatter, null],\n outputFormatter: utils.toData\n })\n\n export const personal_lockAccount = new Method({\n callName: 'personal_lockAccount',\n params: 1,\n inputFormatter: [formatters.inputAddressFormatter],\n outputFormatter: utils.toBoolean\n })\n\n export const personal_listAccounts = new Property({\n getter: 'personal_listAccounts',\n outputFormatter: utils.toArray\n })\n\n export const net_listening = new Property({\n getter: 'net_listening',\n outputFormatter: utils.toBoolean\n })\n\n export const net_peerCount = new Property({\n getter: 'net_peerCount',\n outputFormatter: utils.toDecimal\n })\n\n export const eth_newFilter = new Method({\n callName: 'eth_newFilter',\n params: 1,\n inputFormatter: [formatters.inputFilterOptions],\n outputFormatter: utils.toHex\n })\n\n export const eth_getLogs = new Method({\n callName: 'eth_getLogs',\n params: 1,\n inputFormatter: [utils.toHex],\n outputFormatter: utils.toArray\n })\n\n export const eth_newBlockFilter = new Method({\n callName: 'eth_newBlockFilter',\n params: 0,\n inputFormatter: [],\n outputFormatter: utils.toHex\n })\n\n export const eth_newPendingTransactionFilter = new Method({\n callName: 'eth_newPendingTransactionFilter',\n params: 0,\n inputFormatter: [],\n outputFormatter: utils.toHex\n })\n\n export const eth_uninstallFilter = new Method({\n callName: 'eth_uninstallFilter',\n params: 1,\n inputFormatter: [utils.toHex],\n outputFormatter: utils.toBoolean\n })\n\n export const eth_getFilterLogs = new Method({\n callName: 'eth_getFilterLogs',\n params: 1,\n inputFormatter: [utils.toHex],\n outputFormatter: utils.toArray\n })\n\n export const eth_getFilterChanges = new Method({\n callName: 'eth_getFilterChanges',\n params: 1,\n inputFormatter: [utils.toHex],\n outputFormatter: utils.toArray\n })\n\n export const eth_submitHashrate = new Method({\n callName: 'eth_submitHashrate',\n params: 2,\n inputFormatter: [null /* hashrate */, null /* id */],\n outputFormatter: utils.toBoolean\n })\n\n export const shh_newIdentity = new Method({\n callName: 'shh_newIdentity',\n params: 0,\n inputFormatter: [],\n outputFormatter: utils.toData\n })\n\n export const shh_hasIdentity = new Method({\n callName: 'shh_hasIdentity',\n params: 1,\n inputFormatter: [\n null // DATA, 60 Bytes - The identity address to check.\n ],\n outputFormatter: utils.toBoolean\n })\n\n export const shh_newGroup = new Method({\n callName: 'shh_newGroup',\n params: 0,\n inputFormatter: [],\n outputFormatter: utils.toData\n })\n\n export const shh_addToGroup = new Method({\n callName: 'shh_addToGroup',\n params: 1,\n inputFormatter: [\n null // DATA, 60 Bytes - The identity address to add to a group (?)\n ],\n outputFormatter: utils.toBoolean\n })\n\n export const shh_newFilter = new Method({\n callName: 'shh_newFilter',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toHex\n })\n\n export const shh_uninstallFilter = new Method({\n callName: 'shh_uninstallFilter',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toBoolean\n })\n\n export const shh_getLogs = new Method({\n callName: 'shh_getLogs',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toArray\n })\n\n export const shh_getFilterMessages = new Method({\n callName: 'shh_getFilterMessages',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toArray\n })\n\n export const shh_getFilterChanges = new Method({\n callName: 'shh_getFilterChanges',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toArray\n })\n\n export const shh_getMessages = new Method({\n callName: 'shh_getMessages',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toArray\n })\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport * as errors from './utils/errors'\nimport { RequestManager } from './RequestManager'\n\n/**\n * @public\n */\nexport class Method<Output> {\n callName: string\n params: number\n inputFormatter: Array<null | ((a: any) => any)>\n outputFormatter: (something: any) => Output\n\n constructor(options: { callName: string; params: number; inputFormatter: Array<null | ((a: any) => any)>; outputFormatter: (val: any) => Output }) {\n this.callName = options.callName\n this.params = options.params || 0\n this.inputFormatter = options.inputFormatter || null\n this.outputFormatter = options.outputFormatter\n }\n\n /**\n * Should be called to check if the number of arguments is correct\n *\n * @param arguments - The list of arguments\n */\n validateArgs(args: any[]) {\n if (args.length !== this.params) {\n throw errors.InvalidNumberOfRPCParams(this.callName, args.length, this.params)\n }\n }\n\n /**\n * Should be called to format input args of method\n *\n * @param args - The array of arguments\n */\n formatInput(args: any[]) {\n if (!this.inputFormatter) {\n return args\n }\n\n return this.inputFormatter.map(function(formatter, index) {\n return formatter ? formatter(args[index]) : args[index]\n })\n }\n\n /**\n * Should be called to format output(result) of method\n *\n * @param result - The result to be formatted\n */\n formatOutput(result: any): Output | null {\n return result !== null ? this.outputFormatter(result) : null\n }\n\n /**\n * Should create payload from given input args\n *\n * @param args - The given input arguments\n */\n toPayload(args: any[]) {\n let params = this.formatInput(args)\n\n this.validateArgs(params)\n\n return {\n method: this.callName,\n params: params\n }\n }\n\n async execute(requestManager: RequestManager, ...args: any[]) {\n let payload = this.toPayload(args)\n if (!requestManager) throw new Error('Missing RequestManager in method#exec')\n const result = await requestManager.sendAsync(payload)\n return this.formatOutput(result)\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { RequestManager } from './RequestManager'\n\nexport interface IPropertyOptions<V> {\n getter: string\n outputFormatter: (_: any) => V\n}\n\n/**\n * @public\n */\nexport class Property<V> {\n getter: string\n outputFormatter!: Function\n\n constructor(options: IPropertyOptions<V>) {\n this.getter = options.getter\n this.outputFormatter = options.outputFormatter\n }\n\n /**\n * Should be called to format output(result) of method\n *\n * @param result - The result to be formatted\n */\n formatOutput(result: any): V {\n return this.outputFormatter(result)\n }\n\n // _unusedArgs exist only to share the same interface with Method\n async execute(requestManager: RequestManager, ..._unusedArgs: any[]): Promise<V> {\n const result = await requestManager.sendAsync({\n method: this.getter,\n params: []\n })\n return this.formatOutput(result)\n }\n}\n","/**\n * Sleep for a certain amount of milliseconds\n */\nexport function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// tslint:disable:variable-name\n\nimport { RPCSendableMessage, toJsonRpcRequest, isValidResponse } from './utils/jsonrpc'\nimport { InvalidProvider, InvalidResponse } from './utils/errors'\nimport { BigNumber } from './utils/BigNumber'\nimport { IFuture, future } from 'fp-future'\nimport { eth } from './methods/eth'\n\nimport {\n SHHFilterOptions,\n Data,\n Quantity,\n SHHFilterMessage,\n SHHPost,\n LogObject,\n TransactionReceipt,\n BlockObject,\n TransactionObject,\n TransactionCallOptions,\n TransactionOptions,\n Syncing,\n TxHash,\n Address,\n FilterOptions,\n QueuedTransaction,\n PendingTransaction,\n ReplacedTransaction,\n Transaction,\n RevertedTransaction,\n ConfirmedTransaction,\n TransactionType,\n BlockIdentifier,\n TransactionStatus,\n FinishedTransactionAndReceipt,\n TransactionAndReceipt\n} from './Schema'\nimport { sleep } from './utils/sleep'\nimport { inputTransactionId } from './utils/formatters'\n\nexport let TRANSACTION_FETCH_DELAY: number = 2 * 1000\n\nexport function inject(target: RequestManager, propertyKey: keyof typeof eth) {\n const method = eth[propertyKey]\n\n /* istanbul ignore if */\n if (!method) {\n throw new Error(`Could not find the method/property named ${propertyKey.toString()}`)\n }\n\n Object.defineProperty(target, propertyKey, {\n value: function (this: RequestManager) {\n return method.execute(this, ...arguments)\n }\n })\n}\n\n/**\n * @public\n * It's responsible for passing messages to providers\n * It's also responsible for polling the ethereum node for incoming messages\n * Default poll timeout is 1 second\n */\nexport class RequestManager {\n // @internal\n requests = new Map<number, IFuture<any>>()\n\n /** Returns the current client version. */\n @inject web3_clientVersion!: () => Promise<string>\n\n /** Returns Keccak-256 (not the standardized SHA3-256) of the given data. */\n @inject web3_sha3!: (data: Data) => Promise<Data>\n\n /** Returns the current network id. */\n @inject net_version!: () => Promise<string>\n\n /** Returns number of peers currently connected to the client. */\n @inject net_peerCount!: () => Promise<Quantity>\n\n /** Returns true if client is actively listening for network connections. */\n @inject net_listening!: () => Promise<boolean>\n\n /** Returns the current ethereum protocol version. */\n @inject eth_protocolVersion!: () => Promise<number>\n\n /** Returns an object with data about the sync status or false. */\n @inject eth_syncing!: () => Promise<false | Syncing>\n\n /** Returns the client coinbase address. */\n @inject eth_coinbase!: () => Promise<Address>\n\n /** Returns true if client is actively mining new blocks. */\n @inject eth_mining!: () => Promise<boolean>\n\n /** Returns the number of hashes per second that the node is mining with. */\n @inject eth_hashrate!: () => Promise<Quantity>\n\n /** Returns the current price per gas in wei. */\n @inject eth_gasPrice!: () => Promise<BigNumber>\n\n /** Returns a list of addresses owned by client. */\n @inject eth_accounts!: () => Promise<Address[]>\n\n /** Returns the number of most recent block. */\n @inject eth_blockNumber!: () => Promise<Quantity>\n\n /** Returns the balance of the account of given address. */\n @inject eth_getBalance!: (address: Address, block: BlockIdentifier) => Promise<BigNumber>\n\n /** Returns the value from a storage position at a given address. */\n @inject eth_getStorageAt!: (address: Address, position: Quantity, block: BlockIdentifier) => Promise<Data>\n\n /** Returns the number of transactions sent from an address. */\n @inject eth_getTransactionCount!: (address: Address, block: BlockIdentifier) => Promise<number>\n\n /** Returns the number of transactions in a block from a block matching the given block hash. */\n @inject eth_getBlockTransactionCountByHash!: (blockHash: TxHash) => Promise<number>\n\n /** Returns the number of transactions in a block matching the given block number. */\n @inject eth_getBlockTransactionCountByNumber!: (block: BlockIdentifier) => Promise<number>\n\n /** Returns the number of uncles in a block from a block matching the given block hash. */\n @inject eth_getUncleCountByBlockHash!: (blockHash: TxHash) => Promise<number>\n\n /** Returns the number of uncles in a block from a block matching the given block number. */\n @inject eth_getUncleCountByBlockNumber!: (block: BlockIdentifier) => Promise<number>\n\n /** Returns code at a given address. */\n @inject eth_getCode!: (address: Address, block: BlockIdentifier) => Promise<Data>\n\n /**\n * The sign method calculates an Ethereum specific signature with:\n *\n * sign(keccak256(\"Ethereum Signed Message:\" + len(message) + message))).\n *\n * By adding a prefix to the message makes the calculated signature recognisable as an Ethereum specific signature.\n * This prevents misuse where a malicious DApp can sign arbitrary data (e.g. transaction) and use the signature to\n * impersonate the victim.\n *\n * Note the address to sign with must be unlocked.\n *\n * @deprecated see https://github.com/ethereum/go-ethereum/pull/2940\n */\n @inject eth_sign!: (address: Address, message: Data) => Promise<Data>\n\n /** Creates new message call transaction or a contract creation, if the data field contains code. */\n @inject eth_sendTransaction!: (options: TransactionOptions) => Promise<TxHash>\n\n /** Creates new message call transaction or a contract creation for signed transactions. */\n @inject eth_sendRawTransaction!: (rawTransaction: Data) => Promise<TxHash>\n\n /** Executes a new message call immediately without creating a transaction on the block chain. */\n @inject eth_call!: (options: TransactionCallOptions, block: BlockIdentifier) => Promise<Data>\n /**\n * Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.\n * The transaction will not be added to the blockchain. Note that the estimate may be significantly more\n * than the amount of gas actually used by the transaction, for a variety of reasons including EVM mechanics\n * and node performance.\n */\n @inject eth_estimateGas!: (data: Partial<TransactionCallOptions> & Partial<TransactionOptions>) => Promise<Quantity>\n\n /** Returns information about a block by hash. */\n @inject eth_getBlockByHash!: (blockHash: TxHash, fullTransactionObjects: boolean) => Promise<BlockObject>\n\n /** Returns information about a block by block number. */\n @inject eth_getBlockByNumber!: (block: BlockIdentifier, fullTransactionObjects: boolean) => Promise<BlockObject>\n\n /** Returns the information about a transaction requested by transaction hash. */\n @inject eth_getTransactionByHash!: (hash: TxHash) => Promise<TransactionObject>\n\n /** Returns information about a transaction by block hash and transaction index position. */\n @inject eth_getTransactionByBlockHashAndIndex!: (blockHash: TxHash, txIndex: Quantity) => Promise<TransactionObject>\n\n /** Returns information about a transaction by block number and transaction index position. */\n @inject\n eth_getTransactionByBlockNumberAndIndex!: (block: BlockIdentifier, txIndex: Quantity) => Promise<TransactionObject>\n /**\n * Returns the receipt of a transaction by transaction hash.\n * Note That the receipt is not available for pending transactions.\n */\n @inject eth_getTransactionReceipt!: (hash: TxHash) => Promise<TransactionReceipt>\n\n /** Returns information about a uncle of a block by hash and uncle index position. */\n @inject eth_getUncleByBlockHashAndIndex!: (blockHash: TxHash, index: Quantity) => Promise<BlockObject>\n\n /** Returns information about a uncle of a block by number and uncle index position. */\n @inject eth_getUncleByBlockNumberAndIndex!: (block: BlockIdentifier, index: Quantity) => Promise<BlockObject>\n\n /**\n * Creates a filter object, based on filter options, to notify when the state changes (logs). To check if the state\n * has changed, call eth_getFilterChanges.\n *\n * A note on specifying topic filters:\n * Topics are order-dependent. A transaction with a log with topics [A, B] will be matched by the following topic\n * filters:\n *\n * [] \"anything\"\n * [A] \"A in first position (and anything after)\"\n * [null, B] \"anything in first position AND B in second position (and anything after)\"\n * [A, B] \"A in first position AND B in second position (and anything after)\"\n * [[A, B], [A, B]] \"(A OR B) in first position AND (A OR B) in second position (and anything after)\"\n */\n @inject eth_newFilter!: (options: FilterOptions) => Promise<Data> // this should be quantity\n\n /**\n * Creates a filter in the node, to notify when a new block arrives. To check if the state has changed, call\n * eth_getFilterChanges.\n */\n @inject eth_newBlockFilter!: () => Promise<Data> // this should be quantity\n\n /**\n * Creates a filter in the node, to notify when new pending transactions arrive. To check if the state has changed,\n * call eth_getFilterChanges.\n */\n @inject eth_newPendingTransactionFilter!: () => Promise<Data> // this should be quantity\n\n /**\n * Uninstalls a filter with given id. Should always be called when watch is no longer needed. Additonally Filters\n * timeout when they aren't requested with eth_getFilterChanges for a period of time.\n */\n @inject eth_uninstallFilter!: (filterId: Data) => Promise<boolean>\n\n /**\n * Polling method for a filter, which returns an array of logs which occurred since last poll.\n */\n @inject eth_getFilterChanges!: (filterId: Data) => Promise<Array<TxHash> | Array<LogObject>>\n\n /** Returns an array of all logs matching filter with given id. */\n @inject eth_getFilterLogs!: (filterId: Data) => Promise<Array<TxHash> | Array<LogObject>>\n\n /** Returns an array of all logs matching a given filter object. */\n @inject eth_getLogs!: (options: FilterOptions) => Promise<Array<TxHash> | Array<LogObject>>\n\n /**\n * Returns the hash of the current block, the seedHash, and the boundary condition to be met (\"target\").\n *\n * @returns Array with the following properties:\n * @alpha\n *\n * DATA, 32 Bytes - current block header pow-hash\n * DATA, 32 Bytes - the seed hash used for the DAG.\n * DATA, 32 Bytes - the boundary condition (\"target\"), 2^256 / difficulty.\n */\n @inject eth_getWork!: (blockHeaderHash: Data) => Promise<Array<TxHash>>\n\n /** Used for submitting a proof-of-work solution. */\n @inject eth_submitWork!: (data: Data, powHash: TxHash, digest: TxHash) => Promise<boolean>\n\n /** Used for submitting mining hashrate. */\n @inject eth_submitHashrate!: (hashRate: Data, id: Data) => Promise<boolean>\n\n /** Sends a whisper message. */\n @inject shh_post!: (data: SHHPost) => Promise<boolean>\n\n /** Returns the current whisper protocol version. */\n @inject shh_version!: () => Promise<string>\n\n /** Creates new whisper identity in the client. */\n @inject shh_newIdentity!: () => Promise<Data>\n\n /** Checks if the client hold the private keys for a given identity. */\n @inject shh_hasIdentity!: (identity: Data) => Promise<boolean>\n @inject shh_newGroup!: () => Promise<Data>\n @inject shh_addToGroup!: (group: Data) => Promise<boolean>\n\n /** Creates filter to notify, when client receives whisper message matching the filter options. */\n @inject shh_newFilter!: (options: SHHFilterOptions) => Promise<Data> // this should be quantity\n\n /**\n * Uninstalls a filter with given id. Should always be called when watch is no longer needed.\n * Additonally Filters timeout when they aren't requested with shh_getFilterChanges for a period of time.\n */\n @inject shh_uninstallFilter!: (filterId: Data) => Promise<boolean>\n\n /**\n * Polling method for whisper filters. Returns new messages since the last call of this method.\n *\n * Note calling the shh_getMessages method, will reset the buffer for this method, so that you won't receive duplicate\n * messages.\n */\n @inject shh_getFilterChanges!: (filterId: Data) => Promise<Array<SHHFilterMessage>>\n\n /** Get all messages matching a filter. Unlike shh_getFilterChanges this returns all messages. */\n @inject shh_getMessages!: (filterId: Data) => Promise<Array<SHHFilterMessage>>\n\n /**\n * Decrypts the key with the given address from the key store.\n *\n * Both passphrase and unlock duration are optional when using the JavaScript console. If the passphrase is not\n * supplied as an argument, the console will prompt for the passphrase interactively.\n *\n * The unencrypted key will be held in memory until the unlock duration expires. If the unlock duration defaults to\n * 300 seconds. An explicit duration of zero seconds unlocks the key until geth exits.\n *\n * The account can be used with eth_sign and eth_sendTransaction while it is unlocked.\n */\n @inject personal_unlockAccount!: (account: Address, passPhrase?: Data, seconds?: Quantity) => Promise<boolean>\n\n /**\n * Generates a new private key and stores it in the key store directory. The key file is encrypted with the given\n * passphrase. Returns the address of the new account.\n *\n * At the geth console, newAccount will prompt for a passphrase when it is not supplied as the argument.\n */\n @inject personal_newAccount!: (passPhrase: Data) => Promise<Address>\n\n /** Returns all the Ethereum account addresses of all keys in the key store. */\n @inject personal_listAccounts!: () => Promise<Array<Address>>\n\n /** Removes the private key with given address from memory. The account can no longer be used to send transactions. */\n @inject personal_lockAccount!: (address: Address) => Promise<boolean>\n\n /**\n * Imports the given unencrypted private key (hex string) into the key store, encrypting it with the passphrase.\n * Returns the address of the new account.\n */\n @inject personal_importRawKey!: (keydata: Data, passPhrase: Data) => Promise<Address>\n\n /**\n * Imports the given unencrypted private key (hex string) into the key store, encrypting it with the passphrase.\n * Returns the address of the new account.\n */\n @inject personal_sendTransaction!: (txObject: TransactionOptions, passPhrase: Data) => Promise<TxHash>\n\n /**\n * The sign method calculates an Ethereum specific signature with:\n * sign(keccack256(\"Ethereum Signed Message:\" + len(message) + message))).\n *\n * By adding a prefix to the message makes the calculated signature recognisable as an Ethereum specific signature.\n * This prevents misuse where a malicious DApp can sign arbitrary data (e.g. transaction) and use the signature to\n * impersonate the victim.\n *\n * See ecRecover to verify the signature.\n */\n @inject personal_sign!: (data: Data, signerAddress: Address, passPhrase: Data) => Promise<Data>\n\n /**\n * ecRecover returns the address associated with the private key that was used to calculate the signature in\n * personal_sign.\n */\n @inject personal_ecRecover!: (message: Data, signature: Data) => Promise<Address>\n\n constructor(public provider: any) {\n // stub\n }\n\n /**\n * Should be used to asynchronously send request\n *\n * @param data - The RPC message to be sent\n */\n async sendAsync(data: RPCSendableMessage) {\n const provider = await this.provider\n\n /* istanbul ignore if */\n if (!provider) {\n throw InvalidProvider()\n }\n\n let payload = toJsonRpcRequest(data.method, data.params)\n\n const defer = future()\n\n this.requests.set(payload.id, defer)\n\n provider.sendAsync(payload, (err: any, result: any) => {\n this.requests.delete(payload.id)\n\n if (err) {\n defer.reject(err)\n return\n }\n\n /* istanbul ignore if */\n if (!isValidResponse(result)) {\n defer.reject(InvalidResponse(result))\n return\n }\n defer.resolve(result.result)\n })\n\n return defer\n }\n\n /**\n * Should be used to set provider of request manager\n *\n * @param p - The provider\n */\n setProvider(p: any) {\n this.provider = p\n }\n\n /**\n * Waits until the transaction finishes. Returns if it was successfull.\n * Throws if the transaction fails or if it lacks any of the supplied events\n * @param txId - Transaction id to watch\n */\n async getConfirmedTransaction(txId: string): Promise<FinishedTransactionAndReceipt> {\n const tx = await this.waitForCompletion(txId)\n\n if (this.isFailure(tx)) {\n throw new Error(`Transaction \"${txId}\" failed`)\n }\n\n return tx\n }\n\n /**\n * Wait until a transaction finishes by either being mined or failing\n * @param txId - Transaction id to watch\n * @param retriesOnEmpty - Number of retries when a transaction status returns empty\n */\n async waitForCompletion(txId: string, retriesOnEmpty?: number): Promise<FinishedTransactionAndReceipt> {\n const txIdString = inputTransactionId(txId)\n const isDropped = await this.isTxDropped(txIdString, retriesOnEmpty)\n\n if (isDropped) {\n const tx = await this.getTransactionAndReceipt(txIdString)\n return { ...tx, status: TransactionStatus.failed }\n }\n\n while (true) {\n const tx = await this.getTransactionAndReceipt(txIdString)\n\n if (!this.isPending(tx) && tx.receipt) {\n return {\n ...tx,\n status: this.isFailure(tx) ? TransactionStatus.failed : TransactionStatus.confirmed\n }\n }\n\n await sleep(TRANSACTION_FETCH_DELAY)\n }\n }\n\n /**\n * Returns a transaction in any of the possible states.\n * @param txId - The transaction ID\n */\n async getTransaction(txId: string): Promise<Transaction | null> {\n let currentNonce: number | null = null\n let status: TransactionObject\n const hash = inputTransactionId(txId)\n\n try {\n const accounts = await this.eth_accounts()\n const account = accounts[0]\n if (account) {\n currentNonce = await this.eth_getTransactionCount(account, 'latest')\n }\n } catch (error) {\n currentNonce = null\n }\n\n try {\n status = await this.eth_getTransactionByHash(hash)\n // not found\n if (status == null) {\n return null\n }\n } catch (e) {\n return null\n }\n\n if (status.blockNumber == null) {\n if (currentNonce != null) {\n // replaced\n if (status.nonce < currentNonce) {\n const tx: ReplacedTransaction = {\n hash,\n type: TransactionType.replaced,\n nonce: status.nonce\n }\n return tx\n }\n\n // queued\n if (status.nonce > currentNonce) {\n const tx: QueuedTransaction = {\n hash,\n type: TransactionType.queued,\n nonce: status.nonce\n }\n return tx\n }\n }\n\n // pending\n const tx: PendingTransaction = {\n type: TransactionType.pending,\n ...status\n }\n return tx\n }\n\n let receipt: TransactionReceipt\n\n try {\n receipt = await this.eth_getTransactionReceipt(hash)\n\n // reverted\n if (receipt == null || receipt.status === 0x0) {\n const tx: RevertedTransaction = {\n type: TransactionType.reverted,\n ...status\n }\n return tx\n }\n } catch (e) {\n // TODO: should this be null or reverted?\n return null\n }\n\n // confirmed\n const tx: ConfirmedTransaction = {\n type: TransactionType.confirmed,\n ...status,\n receipt\n }\n return tx\n }\n\n /**\n * Wait retryAttemps * TRANSACTION_FETCH_DELAY for a transaction status to be in the mempool\n * @param txId - Transaction id to watch\n * @param retryAttemps - Number of retries when a transaction status returns empty\n */\n async isTxDropped(txId: string, _retryAttemps: number = 15): Promise<boolean> {\n let retryAttemps = _retryAttemps\n\n while (retryAttemps > 0) {\n const tx = await this.getTransactionAndReceipt(txId)\n\n if (tx !== null) {\n return false\n }\n\n retryAttemps -= 1\n await sleep(TRANSACTION_FETCH_DELAY)\n }\n\n return true\n }\n\n /**\n * Get the transaction status and receipt\n * @param txId - Transaction id\n */\n // prettier-ignore\n async getTransactionAndReceipt(txId: string): Promise<TransactionAndReceipt> {\n txId = inputTransactionId(txId)\n const [tx, receipt] = await Promise.all([\n this.eth_getTransactionByHash(txId),\n this.eth_getTransactionReceipt(txId)\n ])\n\n return { ...tx, receipt }\n }\n\n /**\n * Expects the result of getTransaction's geth command and returns true if the transaction is still pending.\n * It'll also check for a pending status prop against TRANSACTION_STATUS\n * @param tx - The transaction object\n */\n // tslint:disable-next-line:prefer-function-over-method\n isPending(tx: TransactionAndReceipt): boolean {\n return tx && tx.blockNumber === null\n }\n\n /**\n * Expects the result of getTransactionRecepeit's geth command and returns true if the transaction failed.\n * It'll also check for a failed status prop against TRANSACTION_STATUS\n * @param tx - The transaction object\n */\n // tslint:disable-next-line:prefer-function-over-method\n isFailure(tx: TransactionAndReceipt): boolean {\n return tx && (!tx.receipt || tx.receipt.status === 0)\n }\n}\n","import { INVALID_ARGUMENT, error } from '../utils/errors'\n\n///////////////////////////////\n// Exported Types\n\nexport type Arrayish = string | ArrayLike<number>\n\n///////////////////////////////\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if ('slice' in array && array.slice) {\n return array\n }\n\n array.slice = function () {\n var args: any = Array.prototype.slice.call(arguments)\n return new Uint8Array(Array.prototype.slice.apply(array, args))\n }\n\n return array\n}\n\nexport function isArrayish(value: any): value is Arrayish {\n if (!value || parseInt(String(value.length)) != value.length || typeof value === 'string') {\n return false\n }\n\n for (var i = 0; i < value.length; i++) {\n var v = value[i]\n if (v < 0 || v >= 256 || parseInt(String(v)) != v) {\n return false\n }\n }\n\n return true\n}\n\nexport function arrayify(value: Arrayish): Uint8Array {\n if (value == null) {\n throw error('cannot convert null value to array', INVALID_ARGUMENT, { arg: 'value', value: value })\n }\n\n if (value instanceof Uint8Array) {\n return addSlice(new Uint8Array(value))\n }\n\n if (typeof value === 'string') {\n let match = value.match(/^(0x)?[0-9a-fA-F]*$/)\n\n if (!match) {\n throw error('invalid hexidecimal string', INVALID_ARGUMENT, { arg: 'value', value: value })\n }\n\n if (match[1] !== '0x') {\n throw error('hex string must have 0x prefix', INVALID_ARGUMENT, {\n arg: 'value',\n value: value\n })\n }\n\n value = value.substring(2)\n if (value.length % 2) {\n value = '0' + value\n }\n\n var result: any = []\n for (var i = 0; i < value.length; i += 2) {\n result.push(parseInt(value.substr(i, 2), 16))\n }\n\n return addSlice(new Uint8Array(result))\n }\n\n if (isArrayish(value)) {\n return addSlice(new Uint8Array(value))\n }\n\n throw error('invalid arrayify value', undefined, { arg: 'value', value: value, type: typeof value })\n}\n","export function defineReadOnly(object: any, name: string, value: any): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false\n })\n}\n","import { BigNumber } from '../utils/BigNumber'\n\n// NFKD (decomposed)\n//const EtherSymbol = '\\uD835\\uDF63';\n\n// NFKC (composed)\nconst EtherSymbol = '\\u039e'\n\nconst NegativeOne: BigNumber = new BigNumber(-1)\nconst Zero: BigNumber = new BigNumber(0)\nconst One: BigNumber = new BigNumber(1)\nconst MaxUint256: BigNumber = new BigNumber('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n\nexport { EtherSymbol, NegativeOne, Zero, One, MaxUint256 }\n","///////////////////////////////////\n// Parsing for Solidity Signatures\n\nimport { AbiEvent, AbiFunction, AbiInput } from '../Schema'\nimport { formatSignature } from './coder'\n\nexport function parseParamType(type: string): AbiInput {\n return parseParam(type, true)\n}\n\nexport function parseSignatureFunction(fragment: string): AbiFunction {\n var abi: AbiFunction = {\n constant: false,\n inputs: [],\n name: '',\n outputs: [],\n payable: false,\n type: 'function'\n }\n\n let comps = fragment.split('@')\n if (comps.length !== 1) {\n if (comps.length > 2) {\n throw new Error('invalid signature')\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n throw new Error('invalid signature gas')\n }\n abi.gas = parseFloat(comps[1])\n fragment = comps[0]\n }\n\n comps = fragment.split(' returns ')\n var left = comps[0].match(regexParen)\n if (!left) {\n throw new Error('invalid signature')\n }\n\n abi.name = left[1].trim()\n if (!abi.name.match(regexIdentifier)) {\n throw new Error('invalid identifier: \"' + left[1] + '\"')\n }\n\n splitNesting(left[2]).forEach(function (param) {\n abi.inputs!.push(parseParam(param))\n })\n\n left[3].split(' ').forEach(function (modifier) {\n switch (modifier) {\n case 'constant':\n abi.constant = true\n break\n case 'payable':\n abi.payable = true\n abi.stateMutability = 'payable'\n break\n case 'pure':\n abi.constant = true\n abi.stateMutability = 'pure'\n break\n case 'view':\n abi.constant = true\n abi.stateMutability = 'view'\n break\n case 'external':\n case 'public':\n case '':\n break\n }\n })\n\n // We have outputs\n if (comps.length > 1) {\n var right = comps[1].match(regexParen)\n if (!right || right[1].trim() != '' || right[3].trim() != '') {\n throw new Error('unexpected tokens')\n }\n\n splitNesting(right[2]).forEach(function (param) {\n abi.outputs!.push(parseParam(param))\n })\n }\n\n if (abi.name === 'constructor') {\n ;(abi as any).type = 'constructor'\n\n if (abi.outputs!.length) {\n throw new Error('constructor may not have outputs')\n }\n\n // delete abi.name\n // delete abi.outputs\n }\n\n return abi\n}\n\nconst regexParen = new RegExp('^([^)(]*)\\\\((.*)\\\\)([^)(]*)$')\nconst regexIdentifier = new RegExp('^[A-Za-z_][A-Za-z0-9_]*$')\n\nfunction verifyType(type: string): string {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = 'uint256' + type.substring(4)\n } else if (type.match(/^int($|[^1-9])/)) {\n type = 'int256' + type.substring(3)\n }\n\n return type\n}\n\ntype ParseState = {\n allowArray?: boolean\n allowName?: boolean\n allowParams?: boolean\n allowType?: boolean\n readArray?: boolean\n}\n\ntype ParseNode = {\n parent?: any\n type?: string\n name?: string\n state?: ParseState\n indexed?: boolean\n components?: Array<any>\n}\n\nfunction parseParam(param: string, allowIndexed?: boolean): AbiInput {\n function throwError(i: number) {\n return new Error('unexpected character \"' + param[i] + '\" at position ' + i + ' in \"' + param + '\"')\n }\n\n var parent: ParseNode = { type: '', name: '', state: { allowType: true } }\n var node: any = parent\n\n for (var i = 0; i < param.length; i++) {\n var c = param[i]\n switch (c) {\n case '(':\n if (!node.state.allowParams) {\n throw throwError(i)\n }\n node.state.allowType = false\n node.type = verifyType(node.type)\n node.components = [{ type: '', name: '', parent: node, state: { allowType: true } }]\n node = node.components[0]\n break\n\n case ')':\n delete node.state\n if (allowIndexed && node.name === 'indexed') {\n node.indexed = true\n node.name = ''\n }\n node.type = verifyType(node.type)\n\n var child = node\n node = node.parent\n if (!node) {\n throw throwError(i)\n }\n delete child.parent\n node.state.allowParams = false\n node.state.allowName = true\n node.state.allowArray = true\n break\n\n case ',':\n delete node.state\n if (allowIndexed && node.name === 'indexed') {\n node.indexed = true\n node.name = ''\n }\n node.type = verifyType(node.type)\n\n var sibling: ParseNode = { type: '', name: '', parent: node.parent, state: { allowType: true } }\n node.parent.components.push(sibling)\n delete node.parent\n node = sibling\n break\n\n // Hit a space...\n case ' ':\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== '') {\n node.type = verifyType(node.type)\n delete node.state.allowType\n node.state.allowName = true\n node.state.allowParams = true\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== '') {\n if (allowIndexed && node.name === 'indexed') {\n node.indexed = true\n node.name = ''\n } else {\n node.state.allowName = false\n }\n }\n }\n\n break\n\n case '[':\n if (!node.state.allowArray) {\n throw throwError(i)\n }\n\n node.type += c\n\n node.state.allowArray = false\n node.state.allowName = false\n node.state.readArray = true\n break\n\n case ']':\n if (!node.state.readArray) {\n throw throwError(i)\n }\n\n node.type += c\n\n node.state.readArray = false\n node.state.allowArray = true\n node.state.allowName = true\n break\n\n default:\n if (node.state.allowType) {\n node.type += c\n node.state.allowParams = true\n node.state.allowArray = true\n } else if (node.state.allowName) {\n node.name += c\n delete node.state.allowArray\n } else if (node.state.readArray) {\n node.type += c\n } else {\n throw throwError(i)\n }\n }\n }\n\n if (node.parent) {\n throw new Error('unexpected eof')\n }\n\n delete parent.state\n\n if (allowIndexed && node.name === 'indexed') {\n node.indexed = true\n node.name = ''\n }\n\n parent.type = verifyType(parent.type!)\n\n return parent as AbiInput\n}\n\n// @TODO: Better return type\nexport function parseSignatureEvent(fragment: string): AbiEvent {\n var abi: AbiEvent = {\n anonymous: false,\n inputs: [],\n name: '',\n type: 'event'\n }\n\n var match = fragment.match(regexParen)\n if (!match) {\n throw new Error('invalid event: ' + fragment)\n }\n\n abi.name = match[1].trim()\n\n splitNesting(match[2]).forEach(function (param) {\n param = parseParam(param, true)\n param.indexed = !!param.indexed\n abi.inputs!.push(param)\n })\n\n match[3].split(' ').forEach(function (modifier) {\n switch (modifier) {\n case 'anonymous':\n abi.anonymous = true\n break\n case '':\n break\n }\n })\n\n if (abi.name && !abi.name.match(regexIdentifier)) {\n throw new Error('invalid identifier: \"' + abi.name + '\"')\n }\n\n return abi\n}\n\nfunction splitNesting(value: string): Array<any> {\n value = value.trim()\n\n var result: string[] = []\n var accum = ''\n var depth = 0\n for (var offset = 0; offset < value.length; offset++) {\n var c = value[offset]\n if (c === ',' && depth === 0) {\n result.push(accum)\n accum = ''\n } else {\n accum += c\n if (c === '(') {\n depth++\n } else if (c === ')') {\n depth--\n if (depth === -1) {\n throw new Error('unbalanced parenthsis')\n }\n }\n }\n }\n if (accum) {\n result.push(accum)\n }\n\n return result\n}\n\nexport function parseSignature(fragment: string): AbiEvent | AbiFunction {\n if (typeof fragment === 'string') {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n fragment = fragment.replace(/\\(/g, ' (').replace(/\\)/g, ') ').replace(/\\s+/g, ' ')\n fragment = fragment.trim()\n\n if (fragment.substring(0, 6) === 'event ') {\n const ret = parseSignatureEvent(fragment.substring(6).trim())\n\n // check if it throws\n formatSignature(ret)\n\n return ret\n } else {\n if (fragment.substring(0, 9) === 'function ') {\n fragment = fragment.substring(9)\n }\n\n const ret = parseSignatureFunction(fragment.trim())\n\n // check if it throws\n formatSignature(ret)\n\n return ret\n }\n }\n\n throw new Error('unknown signature')\n}\n","'use strict'\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { checkArgumentCount, checkNew, INVALID_ARGUMENT, error } from '../utils/errors'\nimport { BigNumber } from '../utils/BigNumber'\nimport { arrayify } from './bytes'\nimport { stringToUtf8Bytes, bytesToUtf8String } from '../utils/utf8'\nimport { defineReadOnly } from './properties'\n\n///////////////////////////////\n// Imported Types\n\nimport { Arrayish } from './bytes'\nimport {\n bytesToHex,\n fromTwosComplement,\n hexToBytes,\n isAddress,\n padLeft,\n toBigNumber,\n toTwosComplement,\n concatBytes,\n toHex,\n getAddress\n} from '../utils/utils'\nimport { inputAddressFormatter } from '../utils/formatters'\nimport { AbiEvent, AbiFunction, AbiInput, AbiOutput } from '../Schema'\nimport { MaxUint256, NegativeOne, One, Zero } from './constants'\nimport { parseParamType } from './parser'\n\n///////////////////////////////\n// Exported Types\n\nexport type CoerceFunc = (type: string, value: any) => any\n\n///////////////////////////////\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/)\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/)\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/)\n\nexport const defaultCoerceFunc: CoerceFunc = function (type: string, value: any): any {\n var match = type.match(paramTypeNumber)\n if (match && parseInt(match[2]) <= 48) {\n return value.toNumber()\n }\n return value\n}\n\nexport function formatParamType(paramType: Readonly<AbiInput>): string {\n return getParamCoder(defaultCoerceFunc, paramType).type\n}\n\n// @TODO: Allow a second boolean to expose names and modifiers\nexport function formatSignature(fragment: AbiEvent | AbiFunction): string {\n return fragment.name + '(' + (fragment.inputs || []).map((i) => formatParamType(i)).join(',') + ')'\n}\n\n///////////////////////////////////\n// Coders\n\ntype DecodedResult<T = any> = { consumed: number; value: T }\nabstract class Coder {\n readonly coerceFunc: CoerceFunc\n readonly name: string\n readonly type: string\n readonly localName: string\n readonly dynamic: boolean\n constructor(coerceFunc: CoerceFunc, name: string, type: string, localName: string = '', dynamic: boolean) {\n this.coerceFunc = coerceFunc\n this.name = name\n this.type = type\n this.localName = localName\n this.dynamic = dynamic\n }\n\n abstract encode(value: any): Uint8Array\n abstract decode(data: Uint8Array, offset: number): DecodedResult\n}\n\n// Clones the functionality of an existing Coder, but without a localName\nclass CoderAnonymous extends Coder {\n private coder!: Coder\n constructor(coder: Coder) {\n super(coder.coerceFunc, coder.name, coder.type, undefined, coder.dynamic)\n defineReadOnly(this, 'coder', coder)\n }\n encode(value: any): Uint8Array {\n return this.coder.encode(value)\n }\n decode(data: Uint8Array, offset: number): DecodedResult {\n return this.coder.decode(data, offset)\n }\n}\n\nclass CoderNull extends Coder {\n constructor(coerceFunc: CoerceFunc, localName: string) {\n super(coerceFunc, 'null', '', localName, false)\n }\n\n encode(_value: any): Uint8Array {\n return arrayify([])\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult {\n if (offset > data.length) {\n throw new Error('invalid null')\n }\n return {\n consumed: 0,\n value: this.coerceFunc('null', undefined)\n }\n }\n}\n\nfunction maskn(v: BigNumber, bits: number): BigNumber {\n return new BigNumber(v.toString(2).substr(-bits), 2)\n}\n\nclass CoderNumber extends Coder {\n readonly size: number\n readonly signed: boolean\n constructor(coerceFunc: CoerceFunc, size: number, signed: boolean, localName: string) {\n const name = (signed ? 'int' : 'uint') + size * 8\n super(coerceFunc, name, name, localName, false)\n\n this.size = size\n this.signed = signed\n }\n\n encode(value: BigNumber.Value): Uint8Array {\n try {\n let v = toBigNumber(value)\n\n if (this.signed) {\n let bounds = maskn(MaxUint256, this.size * 8 - 1)\n if (v.gt(bounds)) {\n throw new Error('out-of-bounds')\n }\n bounds = bounds.plus(One).multipliedBy(NegativeOne)\n if (v.lt(bounds)) {\n throw new Error('out-of-bounds')\n }\n } else if (v.lt(Zero) || v.gt(maskn(MaxUint256, this.size * 8))) {\n throw new Error('out-of-bounds')\n }\n\n v = maskn(toTwosComplement(v, this.size * 8), this.size * 8)\n\n if (this.signed) {\n v = toTwosComplement(fromTwosComplement(v, this.size * 8), 256)\n }\n\n let result = padLeft(toTwosComplement(v).toString(16), 64)\n\n if (result.indexOf('NaN') != -1) {\n throw error('invalid number value, NaN', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: this.name,\n value: value,\n v,\n twosComplement: toTwosComplement(v),\n twosComplement16: toTwosComplement(v).toString(16),\n pad: padLeft(toTwosComplement(v).toString(16), 64),\n size: this.size\n })\n }\n\n return hexToBytes(result)\n } catch (error) {\n throw error('invalid number value', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: this.name,\n value: value,\n message: error.toString()\n })\n }\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult {\n if (data.length < offset + 32) {\n throw error('insufficient data for ' + this.name + ' type', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: this.name,\n value: toHex(data.slice(offset, offset + 32))\n })\n }\n var junkLength = 32 - this.size\n var value = new BigNumber(bytesToHex(data.slice(offset + junkLength, offset + 32)), 16)\n\n if (this.signed) {\n value = fromTwosComplement(value, this.size * 8)\n } else {\n value = maskn(value, this.size * 8)\n }\n\n return {\n consumed: 32,\n value: this.coerceFunc(this.name, value)\n }\n }\n}\nvar uint256Coder = new CoderNumber(\n function (_type: string, value: any) {\n return value\n },\n 32,\n false,\n 'none'\n)\n\nclass CoderBoolean extends Coder {\n constructor(coerceFunc: CoerceFunc, localName: string) {\n super(coerceFunc, 'bool', 'bool', localName, false)\n }\n\n encode(value: boolean): Uint8Array {\n return uint256Coder.encode(!!value ? 1 : 0)\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult {\n try {\n var result = uint256Coder.decode(data, offset)\n } catch (error) {\n if (error.reason === 'insufficient data for uint256 type') {\n throw error('insufficient data for boolean type', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'boolean',\n value: error.value\n })\n }\n throw error\n }\n return {\n consumed: result.consumed,\n value: this.coerceFunc('bool', !result.value.isZero())\n }\n }\n}\n\nclass CoderFixedBytes extends Coder {\n readonly length: number\n constructor(coerceFunc: CoerceFunc, length: number, localName: string) {\n const name = 'bytes' + length\n super(coerceFunc, name, name, localName, false)\n this.length = length\n }\n\n encode(value: Arrayish): Uint8Array {\n var result = new Uint8Array(32)\n\n try {\n if (typeof value == 'string') {\n if (value.length % 2 !== 0) {\n throw new Error(`hex string cannot be odd-length`)\n }\n }\n\n let data = arrayify(value)\n\n if (data.length > this.length) {\n throw new Error(`incorrect data length`)\n }\n\n result.set(data)\n } catch (error) {\n throw error('invalid ' + this.name + ' value. Use hex strings or Uint8Array', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: this.name,\n value: error.value || value,\n details: error.message\n })\n }\n\n return result\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult<Uint8Array> {\n if (data.length < offset + 32) {\n throw error('insufficient data for ' + this.name + ' type', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: this.name,\n value: toHex(data.slice(offset, offset + 32))\n })\n }\n\n return {\n consumed: 32,\n value: this.coerceFunc(this.name, data.slice(offset, offset + this.length))\n }\n }\n}\n\nclass CoderFunction extends CoderFixedBytes {\n constructor(coerceFunc: CoerceFunc, localName: string) {\n super(coerceFunc, 24, localName)\n }\n}\n\nclass CoderAddress extends Coder {\n constructor(coerceFunc: CoerceFunc, localName: string) {\n super(coerceFunc, 'address', 'address', localName, false)\n }\n encode(inputAddress: string): Uint8Array {\n let result = new Uint8Array(32)\n const address = inputAddress.trim()\n if (!isAddress(address)) {\n throw error(`invalid address format`, INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'address',\n value: inputAddress\n })\n }\n try {\n result.set(hexToBytes(inputAddressFormatter(address)), 12)\n } catch (error) {\n throw error(`invalid address (${error.message})`, INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'address',\n value: inputAddress\n })\n }\n return result\n }\n decode(data: Uint8Array, offset: number): DecodedResult {\n if (data.length < offset + 32) {\n throw error('insufficuent data for address type', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'address',\n value: toHex(data.slice(offset, offset + 32)),\n missingBytes: offset + 32 - data.length\n })\n }\n return {\n consumed: 32,\n value: this.coerceFunc('address', getAddress(toHex(data.slice(offset + 12, offset + 32))))\n }\n }\n}\n\nfunction _encodeDynamicBytes(value: Uint8Array): Uint8Array {\n var dataLength = 32 * Math.ceil(value.length / 32)\n var padding = new Uint8Array(dataLength - value.length)\n\n return concatBytes(uint256Coder.encode(value.length), value, padding)\n}\n\nfunction _decodeDynamicBytes(data: Uint8Array, offset: number, localName: string): DecodedResult {\n if (data.length < offset + 32) {\n throw error('insufficient data for dynamicBytes length', INVALID_ARGUMENT, {\n arg: localName,\n coderType: 'dynamicBytes',\n value: toHex(data.slice(offset, offset + 32))\n })\n }\n\n var length = uint256Coder.decode(data, offset).value\n try {\n length = length.toNumber()\n } catch (error) {\n throw error('dynamic bytes count too large', INVALID_ARGUMENT, {\n arg: localName,\n coderType: 'dynamicBytes',\n value: length.toString()\n })\n }\n\n if (data.length < offset + 32 + length) {\n throw error('insufficient data for dynamicBytes type', INVALID_ARGUMENT, {\n arg: localName,\n coderType: 'dynamicBytes',\n value: toHex(data.slice(offset, offset + 32 + length))\n })\n }\n\n return {\n consumed: 32 + 32 * Math.ceil(length / 32),\n value: data.slice(offset + 32, offset + 32 + length)\n }\n}\n\nclass CoderDynamicBytes extends Coder {\n constructor(coerceFunc: CoerceFunc, localName: string) {\n super(coerceFunc, 'bytes', 'bytes', localName, true)\n }\n encode(value: Arrayish): Uint8Array {\n try {\n return _encodeDynamicBytes(arrayify(value))\n } catch (error) {\n throw error('invalid bytes value', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'bytes',\n value: error.value\n })\n }\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult {\n var result = _decodeDynamicBytes(data, offset, this.localName)\n result.value = this.coerceFunc('bytes', result.value)\n return result\n }\n}\n\nclass CoderString extends Coder {\n constructor(coerceFunc: CoerceFunc, localName: string) {\n super(coerceFunc, 'string', 'string', localName, true)\n }\n\n encode(value: string): Uint8Array {\n if (typeof value !== 'string') {\n throw error('invalid string value', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'string',\n value: value\n })\n }\n return _encodeDynamicBytes(stringToUtf8Bytes(value))\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult {\n var result = _decodeDynamicBytes(data, offset, this.localName)\n result.value = this.coerceFunc('string', bytesToUtf8String(result.value))\n return result\n }\n}\n\nfunction alignSize(size: number): number {\n return 32 * Math.ceil(size / 32)\n}\n\nfunction pack(coders: Array<Coder>, values: Array<any>): Uint8Array {\n if (Array.isArray(values)) {\n // do nothing\n } else if (values && typeof values === 'object') {\n var arrayValues: Array<any> = []\n coders.forEach(function (coder) {\n arrayValues.push((<any>values)[coder.localName])\n })\n values = arrayValues\n } else {\n throw error('invalid tuple value', INVALID_ARGUMENT, {\n coderType: 'tuple',\n value: values\n })\n }\n\n if (coders.length !== values.length) {\n throw error('types/value length mismatch', INVALID_ARGUMENT, {\n coderType: 'tuple',\n value: values\n })\n }\n\n var parts: Array<{ dynamic: boolean; value: any }> = []\n\n coders.forEach(function (coder, index) {\n parts.push({ dynamic: coder.dynamic, value: coder.encode(values[index]) })\n })\n\n var staticSize = 0,\n dynamicSize = 0\n parts.forEach(function (part) {\n if (part.dynamic) {\n staticSize += 32\n dynamicSize += alignSize(part.value.length)\n } else {\n staticSize += alignSize(part.value.length)\n }\n })\n\n var offset = 0,\n dynamicOffset = staticSize\n var data = new Uint8Array(staticSize + dynamicSize)\n\n parts.forEach(function (part) {\n if (part.dynamic) {\n //uint256Coder.encode(dynamicOffset).copy(data, offset);\n data.set(uint256Coder.encode(dynamicOffset), offset)\n offset += 32\n\n //part.value.copy(data, dynamicOffset); @TODO\n data.set(part.value, dynamicOffset)\n dynamicOffset += alignSize(part.value.length)\n } else {\n //part.value.copy(data, offset); @TODO\n data.set(part.value, offset)\n offset += alignSize(part.value.length)\n }\n })\n\n return data\n}\n\nexport class Tuple extends Array<any> {\n [key: string]: any\n}\n\nfunction unpack(coders: Array<Coder>, data: Uint8Array, offset: number): DecodedResult {\n var baseOffset = offset\n var consumed = 0\n\n var value: any[] = []\n coders.forEach(function (coder) {\n if (coder.dynamic) {\n var dynamicOffset = uint256Coder.decode(data, offset)\n var result = coder.decode(data, baseOffset + dynamicOffset.value.toNumber())\n // The dynamic part is leap-frogged somewhere else; doesn't count towards size\n result.consumed = dynamicOffset.consumed\n } else {\n var result = coder.decode(data, offset)\n }\n\n if (result.value != undefined) {\n value.push(result.value)\n }\n\n offset += result.consumed\n consumed += result.consumed\n })\n\n return {\n value: value,\n consumed: consumed\n }\n}\n\nfunction unpackWithNames(coders: Array<Coder>, data: Uint8Array, offset: number): DecodedResult {\n var baseOffset = offset\n var consumed = 0\n var value = new Tuple()\n coders.forEach(function (coder) {\n if (coder.dynamic) {\n var dynamicOffset = uint256Coder.decode(data, offset)\n var result = coder.decode(data, baseOffset + dynamicOffset.value.toNumber())\n // The dynamic part is leap-frogged somewhere else; doesn't count towards size\n result.consumed = dynamicOffset.consumed\n } else {\n var result = coder.decode(data, offset)\n }\n\n if (result.value != undefined) {\n value.push(result.value)\n }\n\n offset += result.consumed\n consumed += result.consumed\n })\n\n coders.forEach(function (coder: Coder, index: number) {\n let name: string = coder.localName\n if (!name) {\n return\n }\n\n if (name === 'length') {\n name = '_length'\n }\n\n if (value[name] != null) {\n return\n }\n\n value[name] = value[index]\n })\n\n return {\n value: value,\n consumed: consumed\n }\n}\n\nclass CoderArray extends Coder {\n readonly coder: Coder\n readonly length: number\n constructor(coerceFunc: CoerceFunc, coder: Coder, length: number, localName: string) {\n const type = coder.type + '[' + (length >= 0 ? length : '') + ']'\n const dynamic = length === -1 || coder.dynamic\n super(coerceFunc, 'array', type, localName, dynamic)\n\n this.coder = coder\n this.length = length\n }\n\n encode(value: Array<any>): Uint8Array {\n if (!Array.isArray(value)) {\n throw error('expected array value', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'array',\n value: value\n })\n }\n\n var count = this.length\n\n var result = new Uint8Array(0)\n if (count === -1) {\n count = value.length\n result = uint256Coder.encode(count)\n }\n\n checkArgumentCount(count, value.length, 'in coder array' + (this.localName ? ' ' + this.localName : ''))\n\n var coders: Coder[] = []\n for (var i = 0; i < value.length; i++) {\n coders.push(this.coder)\n }\n\n return concatBytes(result, pack(coders, value))\n }\n\n decode(data: Uint8Array, offset: number) {\n // @TODO:\n //if (data.length < offset + length * 32) { throw new Error('invalid array'); }\n\n var consumed = 0\n\n var count = this.length\n\n if (count === -1) {\n try {\n var decodedLength = uint256Coder.decode(data, offset)\n } catch (error) {\n throw error('insufficient data for dynamic array length', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'array',\n value: error.value\n })\n }\n try {\n count = decodedLength.value.toNumber()\n } catch (error) {\n throw error('array count too large', INVALID_ARGUMENT, {\n arg: this.localName,\n coderType: 'array',\n value: decodedLength.value.toString()\n })\n }\n consumed += decodedLength.consumed\n offset += decodedLength.consumed\n }\n\n var coders: Coder[] = []\n for (var i = 0; i < count; i++) {\n coders.push(new CoderAnonymous(this.coder))\n }\n\n var result = unpack(coders, data, offset)\n result.consumed += consumed\n result.value = this.coerceFunc(this.type, result.value)\n return result\n }\n}\n\nclass CoderTuple extends Coder {\n readonly coders: Array<Coder>\n constructor(coerceFunc: CoerceFunc, coders: Array<Coder>, localName: string) {\n var dynamic = false\n var types: Array<string> = []\n coders.forEach(function (coder) {\n if (coder.dynamic) {\n dynamic = true\n }\n types.push(coder.type)\n })\n var type = 'tuple(' + types.join(',') + ')'\n\n super(coerceFunc, 'tuple', type, localName, dynamic)\n this.coders = coders\n }\n\n encode(value: Array<any>): Uint8Array {\n return pack(this.coders, value)\n }\n\n decode(data: Uint8Array, offset: number): DecodedResult {\n var result = unpackWithNames(this.coders, data, offset)\n result.value = this.coerceFunc(this.type, result.value)\n return result\n }\n}\n\n// @TODO: Is there a way to return \"class\"?\nconst paramTypeSimple: { [key: string]: any } = {\n address: CoderAddress,\n bool: CoderBoolean,\n string: CoderString,\n bytes: CoderDynamicBytes,\n function: CoderFunction\n}\n\nfunction getTupleParamCoder(\n coerceFunc: CoerceFunc,\n components: ReadonlyArray<Readonly<AbiInput>>,\n localName: string\n): CoderTuple {\n if (!components) {\n components = []\n }\n var coders = components.map((component) => getParamCoder(coerceFunc, component))\n\n return new CoderTuple(coerceFunc, coders, localName)\n}\n\nfunction getParamCoder(coerceFunc: CoerceFunc, param: Readonly<AbiInput>): Coder {\n var coder = paramTypeSimple[param.type]\n if (coder) {\n return new coder(coerceFunc, param.name)\n }\n var match = param.type.match(paramTypeNumber)\n if (match) {\n let size = parseInt(match[2] || '256')\n if (size === 0 || size > 256 || size % 8 !== 0) {\n throw error('invalid ' + match[1] + ' bit length', INVALID_ARGUMENT, {\n arg: 'param',\n value: param\n })\n }\n return new CoderNumber(coerceFunc, size / 8, match[1] === 'int', param.name!)\n }\n\n var match = param.type.match(paramTypeBytes)\n if (match) {\n let size = parseInt(match[1])\n if (size === 0 || size > 32) {\n throw error('invalid bytes length', INVALID_ARGUMENT, {\n arg: 'param',\n value: param\n })\n }\n return new CoderFixedBytes(coerceFunc, size, param.name!)\n }\n\n var match = param.type.match(paramTypeArray)\n\n if (match) {\n const newParam = { ...param }\n let size = parseInt(match[2] || '-1')\n newParam.type = match[1]\n return new CoderArray(coerceFunc, getParamCoder(coerceFunc, newParam), size, param.name!)\n }\n\n if (param.type.substring(0, 5) === 'tuple') {\n return getTupleParamCoder(coerceFunc, param.components!, param.name!)\n }\n\n if (param.type === '') {\n return new CoderNull(coerceFunc, param.name!)\n }\n\n throw error('invalid type', INVALID_ARGUMENT, {\n arg: 'type',\n value: param.type,\n fullType: param\n })\n}\n\nexport class AbiCoder {\n readonly coerceFunc!: CoerceFunc\n constructor(coerceFunc?: CoerceFunc) {\n checkNew(this, AbiCoder)\n\n if (!coerceFunc) {\n coerceFunc = defaultCoerceFunc\n }\n\n defineReadOnly(this, 'coerceFunc', coerceFunc)\n }\n\n encode(types: ReadonlyArray<Readonly<AbiInput | string>>, values: Array<any>): Uint8Array {\n if (types.length !== values.length) {\n throw error('types/values length mismatch', INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n })\n }\n\n const coders = types\n .map(($) => {\n if (typeof $ === 'string') {\n return parseParamType($)\n } else {\n return $\n }\n })\n .map(($) => getParamCoder(this.coerceFunc, $))\n\n return new CoderTuple(this.coerceFunc, coders, '_').encode(values)\n }\n\n decode(types: ReadonlyArray<Readonly<AbiOutput | string>>, data: Uint8Array): any {\n const coders = types\n .map(($) => {\n if (typeof $ === 'string') {\n return parseParamType($)\n } else {\n return $\n }\n })\n .map(($) => getParamCoder(this.coerceFunc, $))\n\n return new CoderTuple(this.coerceFunc, coders, '_').decode(data, 0).value\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiCoder } from '../abi/coder'\nimport { AbiOutput } from '../Schema'\nimport * as utils from '../utils/utils'\nimport { bytesToHex } from '../utils/utils'\n\nconst ethersAbiCoder = new AbiCoder()\n\n/**\n * SolidityCoder prototype should be used to encode/decode solidity params of any type\n */\nexport namespace coder {\n /**\n * Should be used to encode list of params\n *\n * @method encodeParams\n * @param {Array} types\n * @param {Array} params\n * @return {string} encoded list of params\n */\n export function encodeParams(types: ReadonlyArray<Readonly<AbiOutput | string>>, params: any[]): string {\n return bytesToHex(ethersAbiCoder.encode(types, params))\n }\n\n /**\n * Should be used to decode list of params\n *\n * @method decodeParam\n * @param {Array} types\n * @param {string} bytes\n * @return {Array} array of plain params\n */\n export function decodeParams(outputs: ReadonlyArray<Readonly<AbiOutput | string>>, bytes: string): any {\n if (outputs.length > 0 && (!bytes || bytes === '0x' || bytes === '0X')) {\n throw new Error(\n \"Returned values aren't valid, did it run Out of Gas? \" +\n 'You might also see this error if you are not using the ' +\n 'correct ABI for the contract you are retrieving data from, ' +\n 'requesting data from a block number that does not exist, ' +\n 'or querying a node which is not fully synced.'\n )\n }\n\n return ethersAbiCoder.decode(outputs, utils.hexToBytes('0x' + bytes.replace(/0x/i, '')))\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport * as utils from './utils/utils'\nimport * as formatters from './utils/formatters'\nimport * as errors from './utils/errors'\n\nimport { coder } from './solidity/coder'\nimport { RequestManager } from './RequestManager'\nimport { Contract } from './Contract'\nimport { AbiFunction, AbiInput, AbiOutput, Quantity } from './Schema'\n\n/**\n * This prototype should be used to call/sendTransaction to solidity functions\n */\nexport class SolidityFunction {\n _inputTypes: AbiInput[]\n _outputTypes: AbiOutput[]\n _constant: boolean\n _name: string\n _payable: boolean\n\n needsToBeTransaction: boolean\n\n constructor(public json: AbiFunction) {\n this._inputTypes = json.inputs || []\n this._outputTypes = json.outputs || []\n\n this._constant = !!json.constant\n this._payable = !!json.payable || json.stateMutability === 'payable'\n\n this.needsToBeTransaction =\n this._payable || ('constant' in json && !json.constant) || json.stateMutability === 'nonpayable'\n\n this._name = utils.transformToFullName(json)\n }\n\n extractDefaultBlock(args: any[]): string {\n if (args.length > this._inputTypes.length && !utils.isObject(args[args.length - 1])) {\n return formatters.inputDefaultBlockNumberFormatter(args.pop()) || 'latest' // modify the args array!\n }\n return 'latest'\n }\n\n /**\n * Should be called to check if the number of arguments is correct\n *\n * @param arguments - An array of arguments\n */\n validateArgs(args: any[]) {\n if (args.some(($) => typeof $ === 'undefined')) {\n throw new Error('Invalid call, some arguments are undefined')\n }\n\n let inputArgs = args.filter(function (a) {\n // filter the options object but not arguments that are arrays\n return !(utils.isObject(a) === true && utils.isArray(a) === false && utils.isBigNumber(a) === false)\n })\n if (inputArgs.length !== this._inputTypes.length) {\n throw errors.InvalidNumberOfSolidityArgs(inputArgs.length, this._inputTypes.length)\n }\n }\n\n /**\n * Should be used to create payload from arguments\n *\n * @param solidity - function params\n * @param optional - payload options\n */\n toPayload(args: any[]) {\n let options: any = {\n to: undefined,\n data: undefined,\n value: undefined,\n from: undefined\n }\n\n if (args.length > this._inputTypes.length && utils.isObject(args[args.length - 1])) {\n options = args.pop()\n }\n\n this.validateArgs(args)\n\n const signature = this.signature()\n let params = coder.encodeParams(this._inputTypes, args)\n if (params.indexOf('0x') == 0) params = params.substr(2)\n options.data = '0x' + signature + params\n\n return options\n }\n\n /**\n * Should be used to get function signature\n */\n signature(): string {\n return utils.sha3(this._name).slice(0, 8)\n }\n\n unpackOutput(output: string) {\n if (!output) {\n return\n }\n\n const encodedOutput = output.length >= 2 ? output.slice(2) : output\n let result = coder.decodeParams(this._outputTypes, encodedOutput)\n return result.length === 1 ? result[0] : result\n }\n\n /**\n * Calls a contract function or to sendTransaction to solidity function\n *\n * @param requestManager - The RequestManager instance\n */\n async execute(requestManager: RequestManager, address: string, ...args: any[]) {\n if (!requestManager) {\n throw new Error(`Cannot call function ${this.displayName()} because there is no requestManager`)\n }\n\n if (this.needsToBeTransaction) {\n const payload = this.toPayload(args)\n payload.to = address\n if (payload.value > 0 && !this._payable) {\n throw new Error('Cannot send value to non-payable function')\n }\n if (!payload.from) {\n throw new Error('Missing \"from\" in transaction options')\n }\n const txHash = await requestManager.eth_sendTransaction(payload)\n return txHash\n } else {\n const defaultBlock = this.extractDefaultBlock(args)\n const payload = this.toPayload(args)\n payload.to = address\n const output = await requestManager.eth_call(payload, defaultBlock)\n return this.unpackOutput(output)\n }\n }\n\n /**\n * Should be used to estimateGas of solidity function\n */\n estimateGas(requestManager: RequestManager, address: string, ...args: any[]): Promise<Quantity> {\n if (!(requestManager instanceof RequestManager))\n throw new Error('estimateGas needs to receive a RequestManager as first argument')\n\n let payload = this.toPayload(args)\n payload.to = address\n\n return requestManager.eth_estimateGas(payload)\n }\n\n /**\n * Should be used to get function display name\n */\n displayName(): string {\n return utils.extractDisplayName(this._name)\n }\n\n /**\n * Should be used to get function type name\n */\n typeName(): string {\n return utils.extractTypeName(this._name) || 'void'\n }\n\n /**\n * Should be called to attach function to contract\n *\n * @param contract - The contract instance\n */\n attachToContract(contract: Contract) {\n let displayName = this.displayName()\n\n const execute = Object.assign(\n (...args: any[]) => this.execute(contract.requestManager, contract.address, ...args),\n {\n estimateGas: this.estimateGas.bind(this, contract.requestManager, contract.address),\n toPayload: (...args: any[]) => this.toPayload(args)\n }\n )\n\n if (!(contract as any)[displayName]) {\n ;(contract as any)[displayName] = execute\n }\n\n ;(contract as any)[displayName][this.typeName()] = execute\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport * as utils from './utils/utils'\nimport * as formatters from './utils/formatters'\nimport { RequestManager } from './RequestManager'\nimport * as config from './utils/config'\nimport { FilterOptions, LogObject, TxHash, SHHFilterOptions, Data, SHHFilterMessage } from './Schema'\nimport { future, IFuture } from 'fp-future'\nimport { stringToUtf8Bytes } from './utils/utf8'\n\nfunction safeAsync(fn: () => Promise<any>) {\n return function () {\n // tslint:disable-next-line:no-console\n fn().catch(($) => console.error($))\n }\n}\n\n/**\n * Converts a given topic to a hex string, but also allows null values.\n *\n * @param value - The given value\n */\nfunction toTopic(value: any): string | null {\n if (value === null || typeof value === 'undefined') return null\n\n const strValue = String(value).toString()\n\n if (strValue.indexOf('0x') === 0) {\n return strValue\n } else {\n return utils.bytesToHex(stringToUtf8Bytes(strValue))\n }\n}\n\nexport type FilterCallback = (messages: LogObject[] | string[]) => void\n\nexport abstract class AbstractFilter<ReceivedLog, TransformedLog = ReceivedLog> {\n public isStarted = false\n public isDisposed = false\n\n public formatter: (x: ReceivedLog) => TransformedLog = x => x as any\n\n protected filterId: IFuture<Data> = future()\n protected callbacks: ((message: TransformedLog) => void)[] = []\n protected stopSemaphore = future()\n\n constructor(public requestManager: RequestManager) {\n // stub\n }\n\n async watch(callback: (message: TransformedLog) => void) {\n if (this.isDisposed) throw new Error('The filter was disposed')\n if (callback) {\n this.callbacks.push(callback)\n\n if (!this.isStarted) {\n await this.start()\n }\n }\n }\n\n async start() {\n if (this.isDisposed) throw new Error('The filter was disposed')\n if (this.isStarted) return\n\n this.isStarted = true\n\n try {\n const id = await this.getNewFilter()\n\n if (!id) {\n throw new Error('Could not create a filter, response: ' + JSON.stringify(id))\n }\n\n this.filterId.resolve(id)\n } catch (e) {\n throw e\n }\n\n this.stopSemaphore = future()\n await this.poll()\n }\n\n async stop() {\n if (!this.isStarted) return\n if (this.isDisposed) return\n\n this.isDisposed = true\n\n const filterId = await this.filterId\n\n this.isStarted = false\n\n if (this.stopSemaphore) await this.stopSemaphore\n\n const didStop = await this.uninstall()\n\n if (didStop !== true) {\n throw new Error(`Couldn't stop the eth filter: ${filterId}`)\n }\n }\n\n protected abstract getNewFilter(): Promise<Data>\n protected abstract getChanges(): Promise<ReceivedLog[]>\n protected abstract uninstall(): Promise<boolean>\n\n /**\n * Adds the callback and sets up the methods, to iterate over the results.\n */\n private async poll() {\n if (this.isStarted) {\n if (this.callbacks.length) {\n const result = await this.getChanges()\n\n this.callbacks.forEach((cb) => {\n if (this.formatter) {\n result.forEach(($) => {\n cb(this.formatter!($))\n })\n } else {\n result.forEach(($) => cb($ as any))\n }\n })\n }\n\n this.stopSemaphore.resolve(1)\n\n if (this.isStarted) {\n this.stopSemaphore = future()\n setTimeout(\n safeAsync(() => this.poll()),\n config.ETH_POLLING_TIMEOUT\n )\n }\n } else {\n this.stopSemaphore.resolve(1)\n }\n }\n}\n\nexport class SHHFilter extends AbstractFilter<SHHFilterMessage> {\n constructor(public requestManager: RequestManager, public options: SHHFilterOptions) {\n super(requestManager)\n\n this.options = this.options || { topics: [] }\n this.options.topics = this.options.topics || []\n this.options.topics = this.options.topics.map(function (topic) {\n return toTopic(topic)\n })\n\n this.options = {\n topics: this.options.topics,\n to: this.options.to\n }\n }\n\n async getMessages(): Promise<SHHFilterMessage[]> {\n const filterId = await this.filterId\n return this.requestManager.shh_getMessages(filterId)\n }\n\n protected async getNewFilter(): Promise<string> {\n return this.requestManager.shh_newFilter(this.options)\n }\n\n protected async getChanges(): Promise<SHHFilterMessage[]> {\n const filterId = await this.filterId\n return this.requestManager.shh_getFilterChanges(filterId)\n }\n\n protected async uninstall(): Promise<boolean> {\n const filterId = await this.filterId\n return this.requestManager.shh_uninstallFilter(filterId)\n }\n}\n\nexport class EthFilter<TransformedLog = LogObject, ReceivedLog = LogObject> extends AbstractFilter<ReceivedLog, TransformedLog> {\n constructor(\n public requestManager: RequestManager,\n public options: FilterOptions,\n public formatter: (message: ReceivedLog) => TransformedLog = (x) => x as any\n ) {\n super(requestManager)\n this.options = this.options || {}\n this.options.topics = this.options.topics || []\n this.options.topics = this.options.topics.map(function (topic) {\n return toTopic(topic)\n })\n\n this.options = {\n topics: this.options.topics,\n address: this.options.address ? this.options.address : undefined,\n fromBlock:\n typeof this.options.fromBlock === 'number' || typeof this.options.fromBlock === 'string'\n ? formatters.inputBlockNumberFormatter(this.options.fromBlock) || undefined\n : 'latest',\n toBlock:\n typeof this.options.toBlock === 'number' || typeof this.options.toBlock === 'string'\n ? formatters.inputBlockNumberFormatter(this.options.toBlock) || undefined\n : 'latest'\n }\n }\n\n async getLogs(): Promise<ReceivedLog[]> {\n if (!this.isStarted) {\n await this.start()\n }\n const filterId = await this.filterId\n\n return this.requestManager.eth_getFilterLogs(filterId) as any\n }\n\n protected async getNewFilter(): Promise<Data> {\n return this.requestManager.eth_newFilter(this.options)\n }\n\n protected async getChanges(): Promise<ReceivedLog[]> {\n const filterId = await this.filterId\n return this.requestManager.eth_getFilterChanges(filterId) as any\n }\n\n protected async uninstall(): Promise<boolean> {\n const filterId = await this.filterId\n return this.requestManager.eth_uninstallFilter(filterId)\n }\n}\n\nexport class EthPendingTransactionFilter extends EthFilter<TxHash, TxHash> {\n constructor(requestManager: RequestManager) {\n super(requestManager, {})\n }\n async getNewFilter() {\n return this.requestManager.eth_newPendingTransactionFilter()\n }\n}\n\nexport class EthBlockFilter extends EthFilter<TxHash, TxHash> {\n constructor(requestManager: RequestManager) {\n super(requestManager, {})\n }\n\n async getNewFilter() {\n return this.requestManager.eth_newBlockFilter()\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n/**\n * @file event.js\n * @author Marek Kotewicz <marek@ethdev.com>\n * @date 2014\n */\n\nimport * as utils from './utils/utils'\nimport * as formatters from './utils/formatters'\n\nimport { coder } from './solidity/coder'\nimport { RequestManager } from './RequestManager'\nimport { Contract } from './Contract'\nimport { EthFilter } from './Filter'\nimport { AbiEvent, AbiInput, FilterOptions, LogObject, TopicFilter } from './Schema'\n\n/**\n * This prototype should be used to create event filters\n */\nexport class SolidityEvent {\n _anonymous: boolean = false\n _name: string\n _params: AbiInput[]\n\n constructor(public requestManager: RequestManager, json: AbiEvent, public address: string) {\n this._params = json.inputs || []\n this._name = utils.transformToFullName(json)\n this._anonymous = json.anonymous || false\n }\n\n /**\n * Should be used to get filtered param types\n *\n * @param decide - True if returned typed should be indexed\n */\n types(indexed: boolean): AbiInput[] {\n return this._params.filter(function (i) {\n return i.indexed === indexed\n })\n }\n\n /**\n * Should be used to get event display name\n */\n displayName(): string {\n return utils.extractDisplayName(this._name)\n }\n\n /**\n * Should be used to get event type name\n */\n typeName(): string {\n return utils.extractTypeName(this._name) || 'void'\n }\n\n /**\n * Should be used to get event signature\n */\n signature(): string {\n return utils.sha3(this._name)\n }\n\n /**\n * Should be used to encode indexed params and options to one final object\n *\n * @param {object} indexed\n * @param {object} options\n */\n encode(indexed: Record<string, any> = {}, options: FilterOptions = {}): FilterOptions {\n let result: FilterOptions = {\n topics: [],\n address: this.address\n }\n\n if (options.fromBlock !== undefined)\n result.fromBlock = formatters.inputBlockNumberFormatter(options.fromBlock) || undefined\n if (options.toBlock !== undefined)\n result.toBlock = formatters.inputBlockNumberFormatter(options.toBlock) || undefined\n\n result.topics = result.topics || []\n\n if (!this._anonymous) {\n result.topics.push('0x' + this.signature())\n }\n\n let indexedTopics: TopicFilter = this._params\n .filter(function (i) {\n return i.indexed === true\n })\n .map(function (i) {\n let value = indexed[i.name]\n if (value === undefined || value === null) {\n return null\n }\n\n if (utils.isArray(value)) {\n return value.map(function (v) {\n return '0x' + coder.encodeParams([i], [v])\n })\n }\n return '0x' + coder.encodeParams([i], [value])\n })\n\n result.topics = result.topics.concat(indexedTopics)\n\n return result\n }\n\n /**\n * Should be used to decode indexed params and options\n *\n * @param {object} data\n */\n decode(data: LogObject): LogObject & { event: string; address: string; args: Record<string, any> } {\n data.data = data.data || ''\n data.topics = data.topics || []\n\n let argTopics = this._anonymous ? data.topics : data.topics.slice(1)\n let indexedData = argTopics\n .map(function (topics) {\n return topics.slice(2)\n })\n .join('')\n let indexedParams = coder.decodeParams(this.types(true), indexedData)\n\n let notIndexedData = data.data.slice(2)\n let notIndexedParams = coder.decodeParams(this.types(false), notIndexedData)\n\n const args = this._params.reduce(function (acc, current) {\n acc[current.name] = current.indexed ? indexedParams.shift() : notIndexedParams.shift()\n return acc\n }, {} as Record<string, any>)\n\n return {\n ...formatters.outputLogFormatter(data),\n event: this.displayName(),\n address: data.address,\n args\n }\n }\n\n /**\n * Should be used to create new filter object from event\n *\n * @param {object} indexed\n * @param {object} options\n */\n async execute(indexed: Record<string, any>, options?: FilterOptions): Promise<EthFilter<LogObject>> {\n let o = this.encode(indexed, options)\n let formatter = this.decode.bind(this)\n return new EthFilter<LogObject>(this.requestManager, o, formatter)\n }\n\n /**\n * Should be used to attach event to contract object\n *\n * @param {Contract}\n */\n attachToContract(contract: Contract) {\n let execute = this.execute.bind(this)\n let displayName = this.displayName()\n if (!contract.events[displayName]) {\n contract.events[displayName] = execute\n }\n ;(contract.events[displayName] as any)[this.typeName()] = this.execute.bind(this, contract)\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport * as utils from './utils/utils'\nimport * as formatters from './utils/formatters'\n\nimport { SolidityEvent } from './SolidityEvent'\nimport { RequestManager } from './RequestManager'\nimport { EthFilter } from './Filter'\nimport { AbiEvent, FilterOptions, LogObject } from './Schema'\n\nexport class AllSolidityEvents {\n constructor(public _requestManager: RequestManager, public _json: AbiEvent[], public _address: string) {}\n\n encode(options: FilterOptions = {}) {\n let result: FilterOptions = {\n address: this._address\n }\n\n if (options.fromBlock !== undefined)\n result.fromBlock = formatters.inputBlockNumberFormatter(options.fromBlock) || undefined\n\n if (options.toBlock !== undefined)\n result.toBlock = formatters.inputBlockNumberFormatter(options.toBlock) || undefined\n\n return result\n }\n\n decode(data: LogObject) {\n data.data = data.data || ''\n\n let eventTopic = utils.isArray(data.topics) && utils.isString(data.topics[0]) ? data.topics[0].slice(2) : ''\n\n let match = this._json.filter(function (j) {\n return eventTopic === utils.sha3(utils.transformToFullName(j))\n })[0]\n\n if (!match) {\n // cannot find matching event?\n return formatters.outputLogFormatter(data)\n }\n\n let event = new SolidityEvent(this._requestManager, match, this._address)\n return event.decode(data)\n }\n\n async execute(options: FilterOptions) {\n let filterOptions = this.encode(options)\n let formatter = this.decode.bind(this)\n return new EthFilter<any>(this._requestManager, filterOptions, formatter)\n }\n\n getAllEventsFunction() {\n return this.execute.bind(this)\n }\n}\n","import { RequestManager } from './RequestManager'\nimport { SolidityFunction } from './SolidityFunction'\nimport { SolidityEvent } from './SolidityEvent'\nimport { AllSolidityEvents } from './AllSolidityEvents'\nimport { EthFilter } from './Filter'\nimport { AbiEvent, AbiFunction, AbiItem, FilterOptions } from './Schema'\n\n/**\n * Should be called to add functions to contract object\n *\n * @param contract - The contract instance\n */\nfunction addFunctionsToContract(contract: Contract) {\n contract.abi\n .filter(function (json): json is AbiFunction {\n return json.type === 'function'\n })\n .map(function (json) {\n return new SolidityFunction(json)\n })\n .forEach(function (f) {\n f.attachToContract(contract)\n })\n}\n\n/**\n * Should be called to add events to contract object\n *\n * @param contract - The contract instance\n */\nfunction addEventsToContract(contract: Contract) {\n let events = contract.abi.filter(function (json): json is AbiEvent {\n return json.type === 'event'\n })\n\n let allEvents = new AllSolidityEvents(contract.requestManager, events, contract.address)\n\n events\n .map(function (json) {\n return new SolidityEvent(contract.requestManager, json, contract.address)\n })\n .forEach(function (e) {\n e.attachToContract(contract)\n })\n\n return allEvents.getAllEventsFunction()\n}\n\n/**\n * @public\n */\nexport type EventFilterCreator = (indexed: { [key: string]: any }, options?: FilterOptions) => Promise<EthFilter>\n\n/**\n * @public\n * Should be called to create new contract instance\n */\nexport class Contract {\n allEvents: (options: FilterOptions) => Promise<EthFilter>\n\n events: { [key: string]: EventFilterCreator } = {}\n\n transactionHash: string | null = null\n\n constructor(public requestManager: RequestManager, public abi: AbiItem[], public address: string) {\n this.address = address\n this.abi = abi\n\n // this functions are not part of prototype,\n // because we dont want to spoil the interface\n addFunctionsToContract(this)\n this.allEvents = addEventsToContract(this)\n }\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n/**\n * @file contract.js\n * @author Marek Kotewicz <marek@ethdev.com>\n * @date 2014\n */\n\nimport * as utils from './utils/utils'\nimport { coder } from './solidity/coder'\nimport { RequestManager } from './RequestManager'\nimport { Contract } from './Contract'\nimport { future } from 'fp-future'\nimport { TransactionOptions, TxHash, AbiItem } from './Schema'\nimport { toDecimal } from './utils/utils'\n\n/**\n * Should be called to check if the contract gets properly deployed on the blockchain.\n * @param requestManager - The reference to a RequestManager instance\n */\nasync function checkForContractAddress(requestManager: RequestManager, txId: TxHash): Promise<string> {\n const receiptFuture = future()\n\n let count = 0\n\n const fetcher = () => {\n count++\n // stop watching after 50 blocks (timeout)\n if (count > 50) {\n receiptFuture.reject(new Error(\"Contract transaction couldn't be found after 50 blocks\"))\n } else {\n requestManager.eth_getTransactionReceipt(txId).then(\n (receipt) => {\n if (receipt && receipt.blockHash) {\n receiptFuture.resolve(receipt)\n } else {\n setTimeout(fetcher, 1000)\n }\n },\n /* istanbul ignore next */\n (error) => receiptFuture.reject(error)\n )\n }\n }\n\n fetcher()\n\n const receipt = await receiptFuture\n const code = await requestManager.eth_getCode(receipt.contractAddress, 'latest')\n\n // code can be null because of undefined behavior of eth nodes,\n // the strict types requires us to check that code is not null before\n // comparing it with a number `> 3` \"0x0\"\n if (code && code.length > 3) {\n return receipt.contractAddress\n }\n\n /* istanbul ignore next */\n throw Object.assign(new Error(\"The contract code couldn't be stored, please check your gas amount.\"), {\n response: code,\n receipt\n })\n}\n\n/**\n * Should be called to encode constructor params\n * @param abi - The given contract ABI\n */\nfunction encodeConstructorParams(abi: AbiItem[], params: any[]) {\n return (\n abi\n .filter(function (json) {\n return json.type === 'constructor' && json.inputs && json.inputs.length === params.length\n })\n .map(function (json) {\n return json.inputs || []\n })\n .map(function (types) {\n return coder.encodeParams(types, params)\n })[0] || ''\n )\n}\n\n/**\n * @public\n * Should be called to create new ContractFactory instance\n */\nexport class ContractFactory {\n constructor(public requestManager: RequestManager, public abi: any[]) {}\n\n /**\n * Should be called to create new contract on a blockchain\n */\n async deploy(param1: any, param2: any, options: TransactionOptions): Promise<Contract>\n async deploy(param1: any, options: TransactionOptions): Promise<Contract>\n async deploy(options: TransactionOptions): Promise<Contract>\n async deploy(...args: any[]) {\n // parse arguments\n let options: TransactionOptions | undefined = undefined\n\n let last = args[args.length - 1]\n\n if (utils.isObject(last) && !utils.isArray(last)) {\n options = args.pop()\n }\n\n /* istanbul ignore if */\n if (!options) {\n throw new Error('Missing options object')\n }\n\n /* istanbul ignore if */\n if (!options.data || typeof options.data !== 'string') {\n throw new Error('Invalid options.data')\n }\n\n if (toDecimal(options.value!) > 0) {\n let constructorAbi =\n this.abi.filter(function (json) {\n return json.type === 'constructor' && json.inputs.length === args.length\n })[0] || {}\n\n /* istanbul ignore if */\n if (!constructorAbi.payable) {\n throw new Error('Cannot send value to non-payable constructor')\n }\n }\n\n let bytes = encodeConstructorParams(this.abi, args)\n options.data += bytes\n\n if (!options.gas) {\n options.gas = await this.requestManager.eth_estimateGas(options)\n }\n\n // wait for the contract address and check if the code was deployed\n const hash = await this.requestManager.eth_sendTransaction(options)\n\n if (!hash) {\n throw new Error('Error while sending contract creation transaction. A TxHash was not retrieved')\n }\n\n const address = await checkForContractAddress(this.requestManager, hash)\n const contract = await this.at(address)\n contract.transactionHash = hash\n\n return contract\n }\n\n /**\n * Should be called to get access to existing contract on a blockchain\n *\n * @param address - The contract address\n */\n async at(address: string): Promise<Contract> {\n if (!utils.isAddress(address)) {\n throw new TypeError(`Invalid address ${JSON.stringify(address)}`)\n }\n return new Contract(this.requestManager, this.abi, address)\n }\n}\n","import { RPCMessage, Callback, toRPC } from './common'\nexport { RPCMessage, Callback } from './common'\n\nexport type HTTPProviderOptions = {\n headers?: { [key: string]: string }\n timeout?: number\n}\n\n/**\n * @public\n *\n * HttpProvider should be used to send rpc calls over http\n */\nexport class HTTPProvider {\n debug = false\n\n constructor(public host: string, public options: HTTPProviderOptions = {}) {\n this.host = host || 'http://localhost:8545'\n }\n\n /* istanbul ignore next */\n // tslint:disable-next-line:prefer-function-over-method\n send() {\n /* istanbul ignore next */\n throw new Error('Sync requests are deprecated')\n }\n\n /**\n * Should be used to make async request\n */\n sendAsync(payload: RPCMessage | RPCMessage[], callback: Callback) {\n try {\n let toSend = null\n\n if (payload instanceof Array) {\n toSend = payload.map($ => toRPC($))\n } else {\n toSend = toRPC(payload)\n }\n\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('There is no global fetch object. Please install and import isomorphic-fetch')\n }\n\n const params: RequestInit = {\n body: JSON.stringify(toSend),\n method: 'POST',\n // mode: 'cors',\n headers: {\n ...this.options.headers,\n 'Content-Type': 'application/json'\n }\n }\n\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('SEND >> ' + params.body)\n\n fetch(this.host, params).then(\n async $ => {\n if (!$.ok) {\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('ERR << ' + JSON.stringify($))\n callback(new Error('External error. response code: ' + $.status))\n } else {\n const json = await $.json()\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('RECV << ' + JSON.stringify(json))\n if (json.error) {\n callback(Object.assign(new Error(json.error.json || json.error), json.error))\n } else {\n callback(null, json)\n }\n }\n },\n err => {\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('ERR << ' + JSON.stringify(err))\n callback(err)\n }\n )\n } catch (e) {\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('ERR << ' + JSON.stringify(e))\n callback(e)\n }\n }\n}\n","import { Callback, RPCResponse, RPCMessage, toRPC } from './common'\nimport { IFuture, future } from 'fp-future'\n\nexport interface IWebSocket {\n /**\n * Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.\n */\n close(code?: number, reason?: string): void\n /**\n * Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.\n */\n send(data: string): void\n onclose: ((this: this, ev: any) => any) | null\n onerror: ((this: this, ev: any) => any) | null\n onmessage: ((this: this, ev: any) => any) | null\n onopen: ((this: this, ev: any) => any) | null\n}\n\nexport type WebSocketProviderOptions = {\n /**\n * WebSocketConstructor, used in Node.js where WebSocket is not globally available\n */\n WebSocketConstructor?: any\n\n timeout?: number\n\n protocol?: string\n}\n\n/**\n * @public\n */\nexport class WebSocketProvider<T extends IWebSocket> {\n isDisposed = false\n\n // @internal\n responseCallbacks = new Map<number, IFuture<any>>()\n // @internal\n notificationCallbacks = new Set<Callback>()\n connection!: IFuture<T>\n\n debug = false\n\n private lastChunk: string = ''\n private lastChunkTimeout: any\n\n constructor(public url: string, public options: WebSocketProviderOptions = {}) {\n this.connect()\n }\n\n dispose() {\n this.isDisposed = true\n const connection = this.connection\n this.timeout(new Error('Provider disposed.'))\n // tslint:disable-next-line:no-floating-promises\n connection.then(($) => $.close())\n }\n\n /* istanbul ignore next */\n // tslint:disable-next-line:prefer-function-over-method\n send() {\n /* istanbul ignore next */\n throw new Error('Sync requests are deprecated')\n }\n\n sendAsync(payload: RPCMessage | RPCMessage[], callback: Callback) {\n const toSend: RPCMessage[] = []\n let didFinish: Promise<any>\n if (payload instanceof Array) {\n didFinish = Promise.all(\n payload.map(($) => {\n const defer = future<any>()\n\n try {\n const message = toRPC($)\n toSend.push(message)\n this.responseCallbacks.set(message.id, defer)\n } catch (e) {\n defer.reject(e)\n }\n\n return defer\n })\n )\n } else {\n const defer = future<any>()\n try {\n const message = toRPC(payload)\n toSend.push(message)\n this.responseCallbacks.set(message.id, defer)\n } catch (e) {\n defer.reject(e)\n }\n didFinish = defer\n }\n\n didFinish.then(\n ($) => callback(null, $),\n (err) => callback(err)\n )\n\n this.connection.then(\n (ws) => {\n toSend.forEach(($) => {\n const s = JSON.stringify($)\n\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('SEND >> ' + s)\n ws.send(s)\n })\n },\n (err) => {\n callback(err)\n }\n )\n }\n\n /**\n * Will parse the response and make an array out of it.\n */\n private parseResponse(data: string) {\n let returnValues: any[] = []\n\n // DE-CHUNKER\n let dechunkedData = data\n .replace(/\\}[\\n\\r]?\\{/g, '}|--|{') // }{\n .replace(/\\}\\][\\n\\r]?\\[\\{/g, '}]|--|[{') // }][{\n .replace(/\\}[\\n\\r]?\\[\\{/g, '}|--|[{') // }[{\n .replace(/\\}\\][\\n\\r]?\\{/g, '}]|--|{') // }]{\n .split('|--|')\n\n dechunkedData.forEach((chunk) => {\n let data = chunk\n // prepend the last chunk\n if (this.lastChunk) {\n data = this.lastChunk + data\n }\n\n let result: any = null\n\n try {\n result = JSON.parse(data)\n } catch (e) {\n this.lastChunk = data\n\n // start timeout to cancel all requests\n clearTimeout(this.lastChunkTimeout)\n\n this.lastChunkTimeout = setTimeout(() => {\n this.timeout()\n }, 1000 * 15)\n\n return\n }\n\n // cancel timeout and set chunk to null\n clearTimeout(this.lastChunkTimeout)\n this.lastChunk = ''\n\n if (result) returnValues.push(result)\n })\n\n return returnValues\n }\n\n private processMessage(message: RPCResponse) {\n if ('id' in message) {\n const id = message.id\n\n const defer = this.responseCallbacks.get(id)\n\n if (!defer) {\n // tslint:disable-next-line:no-console\n console.error('Error: Received a response for an unknown request', message)\n return\n }\n\n this.responseCallbacks.delete(id)\n\n if ('error' in message) {\n defer.reject(Object.assign(new Error(message.error.message || message.error), message.error))\n } else if ('result' in message) {\n defer.resolve(message)\n }\n } else {\n this.notificationCallbacks.forEach(($) => $(null, message))\n }\n }\n\n /**\n * Timeout all requests when the end/error event is fired\n */\n private timeout(error?: Error) {\n if (!this.connection || !this.connection.isPending) {\n this.connection = future<T>()\n }\n\n const timeoutError = error || new Error('Connection timeout')\n this.responseCallbacks.forEach(($) => $.reject(timeoutError))\n this.responseCallbacks.clear()\n\n // reset all requests and callbacks\n if (!this.isDisposed) {\n this.connect()\n }\n }\n\n private connect() {\n if (this.connection && !this.connection.isPending) {\n // tslint:disable-next-line\n this.connection.then(($) => $.close())\n }\n\n if (!this.connection || !this.connection.isPending) {\n this.connection = future<T>()\n }\n\n this.lastChunk = ''\n\n let ctor = this.options.WebSocketConstructor || (typeof WebSocket !== 'undefined' ? WebSocket : void 0)\n\n if (!ctor) {\n throw new Error('Please provide a WebSocketConstructor')\n }\n\n const connection: T = new ctor(this.url, this.options.protocol)\n\n connection.onopen = () => {\n this.connection.resolve(connection)\n }\n\n connection.onerror = (error) => {\n const theError = new Error('Error in web socket')\n ;(theError as any).data = error\n this.timeout(theError)\n }\n\n connection.onclose = (event) => {\n this.timeout(new Error(`Connection closed (${(event && event.reason) || 'Unknown reason'})`))\n }\n\n // LISTEN FOR CONNECTION RESPONSES\n connection.onmessage = (e) => {\n let data = typeof e.data === 'string' ? e.data : ''\n\n /* istanbul ignore if */\n // tslint:disable-next-line:no-console\n if (this.debug) console.log('RECV << ' + e.data)\n\n this.parseResponse(data).forEach((result) => {\n // get the id which matches the returned id\n if (result instanceof Array) {\n result.forEach(($) => this.processMessage($))\n } else {\n this.processMessage(result)\n }\n })\n }\n }\n}\n\nexport default WebSocketProvider\n","export type IFuture<T> = Promise<T> & {\n resolve: (x: T) => void;\n reject: (x: Error) => void;\n finally: (fn: () => void) => void;\n isPending: boolean;\n};\n\nexport function future<T = any>(): IFuture<T> {\n let resolver: (x: T) => void;\n let rejecter: (x: Error) => void;\n\n const promise: any = new Promise((ok, err) => {\n resolver = (x: T) => {\n ok(x);\n promise.isPending = false;\n };\n rejecter = (x: Error) => {\n err(x);\n promise.isPending = false;\n };\n }).catch(e => Promise.reject(e));\n\n promise.resolve = resolver;\n promise.reject = rejecter;\n\n if (!(\"finally\" in promise)) {\n promise.finally = fn => {\n promise.then(fn);\n promise.catch(fn);\n };\n }\n\n promise.isPending = true;\n\n return promise as IFuture<T>;\n}\n\nexport default future;\n","/** @license React v16.13.1\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\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.13.1\";\n","/** @license React v16.13.1\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){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}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(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 ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(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 xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(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 Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(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\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(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 Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({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 od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(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 qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(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}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;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}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))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}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(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.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(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)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(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.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(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.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.13.1\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.13.1\";\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","/** @license React v0.19.1\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\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\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","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\n\nvar compose = require('redux').compose;\n\nexports.__esModule = true;\nexports.composeWithDevTools = (\n typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ :\n function() {\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, arguments);\n }\n);\n\nexports.devToolsEnhancer = (\n typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ ?\n window.__REDUX_DEVTOOLS_EXTENSION__ :\n function() { return function(noop) { return noop; } }\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.connection = exports.ConnectionManager = void 0;\nconst schemas_1 = require(\"@dcl/schemas\");\nconst connectors_1 = require(\"./connectors\");\nconst storage_1 = require(\"./storage\");\nconst types_1 = require(\"./types\");\nconst configuration_1 = require(\"./configuration\");\nconst ProviderAdapter_1 = require(\"./ProviderAdapter\");\nrequire(\"./declarations\");\nclass ConnectionManager {\n constructor(storage) {\n this.storage = storage;\n }\n connect(providerType, chainId = schemas_1.ChainId.ETHEREUM_MAINNET) {\n return __awaiter(this, void 0, void 0, function* () {\n this.setConnectionData(providerType, chainId);\n this.connector = this.buildConnector(providerType, chainId);\n const { provider, account } = yield this.connector.activate();\n return {\n provider: ProviderAdapter_1.ProviderAdapter.adapt(provider),\n providerType,\n account: account || '',\n chainId\n };\n });\n }\n tryPreviousConnection() {\n return __awaiter(this, void 0, void 0, function* () {\n const connectionData = this.getConnectionData();\n if (!connectionData) {\n throw new Error('Could not find a valid provider. Make sure to call the `connect` method first');\n }\n return this.connect(connectionData.providerType, connectionData.chainId);\n });\n }\n getAvailableProviders() {\n const available = [types_1.ProviderType.FORTMATIC, types_1.ProviderType.WALLET_CONNECT];\n if (typeof window !== 'undefined' && window.ethereum !== undefined) {\n available.unshift(types_1.ProviderType.INJECTED);\n }\n return available;\n }\n disconnect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.connector) {\n this.connector.deactivate();\n if (this.isClosableConnector()) {\n yield this.connector.close();\n }\n const { storageKey } = configuration_1.getConfiguration();\n this.storage.remove(storageKey);\n this.connector = undefined;\n }\n });\n }\n getProvider() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.connector) {\n throw new Error('No valid connector found. Please .connect() first');\n }\n return this.connector.getProvider();\n });\n }\n createProvider(providerType, chainId = schemas_1.ChainId.ETHEREUM_MAINNET) {\n return __awaiter(this, void 0, void 0, function* () {\n const connector = this.buildConnector(providerType, chainId);\n const provider = yield connector.getProvider();\n return ProviderAdapter_1.ProviderAdapter.adapt(provider);\n });\n }\n buildConnector(providerType, chainId) {\n switch (providerType) {\n case types_1.ProviderType.INJECTED:\n return new connectors_1.InjectedConnector(chainId);\n case types_1.ProviderType.FORTMATIC:\n return new connectors_1.FortmaticConnector(chainId);\n case types_1.ProviderType.WALLET_CONNECT:\n return new connectors_1.WalletConnectConnector(chainId);\n case types_1.ProviderType.NETWORK:\n return new connectors_1.NetworkConnector(chainId);\n default:\n throw new Error(`Invalid provider ${providerType}`);\n }\n }\n getConnectionData() {\n const { storageKey } = configuration_1.getConfiguration();\n const connectionData = this.storage.get(storageKey);\n return connectionData ? JSON.parse(connectionData) : undefined;\n }\n setConnectionData(providerType, chainId) {\n const { storageKey } = configuration_1.getConfiguration();\n const connectionData = JSON.stringify({\n providerType,\n chainId\n });\n this.storage.set(storageKey, connectionData);\n }\n isClosableConnector() {\n return this.connector && typeof this.connector['close'] !== 'undefined';\n }\n}\nexports.ConnectionManager = ConnectionManager;\nexports.connection = new ConnectionManager(new storage_1.LocalStorage());\n//# sourceMappingURL=ConnectionManager.js.map","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nconst context_1 = require(\"./compile/context\");\nexports.KeywordCxt = context_1.default;\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n 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 defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.default = Ajv;\n//# sourceMappingURL=ajv.js.map","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign(codegen_1._ `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n errors_1.reportError(cxt, boolError, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.schemaKeywords = void 0;\nconst applicability_1 = require(\"./applicability\");\nconst dataType_1 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst util_1 = require(\"../util\");\nconst _1 = require(\".\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !util_1.schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keyword_1.keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!applicability_1.shouldUseGroup(schema, group))\n return;\n if (group.type) {\n gen.if(dataType_1.checkDataType(group.type, data, opts.strict));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n dataType_1.reportTypeError(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if(codegen_1._ `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nexports.schemaKeywords = schemaKeywords;\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n defaults_1.assignDefaults(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if (applicability_1.shouldUseRule(schema, rule)) {\n keyword_1.keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n 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}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && applicability_1.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}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n _1.checkStrictMode(it, msg, it.opts.strictTypes);\n}\n//# sourceMappingURL=iterate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst _1 = require(\".\");\nfunction assignDefaults(it, ty) {\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 }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = codegen_1._ `${data}${codegen_1.getProperty(prop)}`;\n if (compositeRule) {\n _1.checkStrictMode(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = codegen_1._ `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = codegen_1._ `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, codegen_1._ `${childData} = ${codegen_1.stringify(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.keywordCode = void 0;\nconst context_1 = require(\"../context\");\nconst errors_1 = require(\"../errors\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new context_1.default(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def);\n }\n else if (\"macro\" in def) {\n macroKeywordCode(cxt, def);\n }\n else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def);\n }\n}\nexports.keywordCode = keywordCode;\nfunction macroKeywordCode(cxt, def) {\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)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsync(it, def);\n const validate = !$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((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid(codegen_1._ `await `), (e) => gen.assign(valid, false).if(codegen_1._ `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, codegen_1._ `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = codegen_1._ `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? codegen_1._ `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, codegen_1._ `${_await}${code_1.callValidateCode(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if(codegen_1.not((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, codegen_1._ `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if(codegen_1._ `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, codegen_1._ `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, codegen_1._ `${names_1.default.vErrors}.length`);\n errors_1.extendErrors(cxt);\n }, () => cxt.error());\n}\nfunction checkAsync({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: codegen_1.stringify(result) });\n}\n//# sourceMappingURL=keyword.js.map","'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<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nconst context_1 = require(\"./compile/context\");\nexports.KeywordCxt = context_1.default;\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst error_classes_1 = require(\"./compile/error_classes\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst META_IGNORE_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]);\nconst removedOptions = {\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 schemaId: \"JSON Schema draft-04 is not supported in Ajv v7.\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n strictNumbers: \"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};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n const strict = (_a = o.strict) !== null && _a !== void 0 ? _a : true;\n const strictLog = strict ? \"log\" : false;\n const _optz = (_b = o.code) === null || _b === void 0 ? void 0 : _b.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n return {\n strict,\n strictTypes: (_c = o.strictTypes) !== null && _c !== void 0 ? _c : strictLog,\n strictTuples: (_d = o.strictTuples) !== null && _d !== void 0 ? _d : strictLog,\n code: o.code ? { ...o.code, optimize } : { optimize },\n loopRequired: (_e = o.loopRequired) !== null && _e !== void 0 ? _e : Infinity,\n loopEnum: (_f = o.loopEnum) !== null && _f !== void 0 ? _f : Infinity,\n meta: (_g = o.meta) !== null && _g !== void 0 ? _g : true,\n messages: (_h = o.messages) !== null && _h !== void 0 ? _h : true,\n inlineRefs: (_j = o.inlineRefs) !== null && _j !== void 0 ? _j : true,\n addUsedSchema: (_k = o.addUsedSchema) !== null && _k !== void 0 ? _k : true,\n validateSchema: (_l = o.validateSchema) !== null && _l !== void 0 ? _l : true,\n validateFormats: (_m = o.validateFormats) !== null && _m !== void 0 ? _m : true,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = rules_1.getRules();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta } = this.opts;\n if (meta && $data)\n this.addMetaSchema($dataRefSchema, $dataRefSchema.$id, false);\n }\n defaultMeta() {\n const { meta } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta.$id || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\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 async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof error_classes_1.MissingRefError))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // 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, // 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 ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n id = schema.$id;\n if (id !== undefined && typeof id != \"string\")\n throw new Error(\"schema id must be string\");\n }\n key = resolve_1.normalizeId(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, _validateSchema, true);\n return this;\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(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\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\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\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) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const root = new compile_1.SchemaEnv({ schema: {} });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\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) {\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\")\n 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.$id;\n if (id) {\n id = resolve_1.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 // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\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 }\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 }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n util_1.eachItem(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: dataType_1.getJSONTypes(def.type),\n schemaType: dataType_1.getJSONTypes(def.schemaType),\n };\n util_1.eachItem(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\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)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.dataPath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\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)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\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 }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n if (typeof schema != \"object\") {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n const localRefs = resolve_1.getSchemaRefs.call(this, schema);\n sch = new compile_1.SchemaEnv({ schema, meta, localRefs });\n this._cache.set(sch.schema, sch);\n const id = sch.baseId;\n if (addSchema && !id.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (id)\n this._checkUnique(id);\n this.refs[id] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nexports.default = Ajv;\nAjv.ValidationError = error_classes_1.ValidationError;\nAjv.MissingRefError = error_classes_1.MissingRefError;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = resolve_1.normalizeId(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\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];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n util_1.eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n 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}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n 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)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: dataType_1.getJSONTypes(definition.type),\n schemaType: dataType_1.getJSONTypes(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n applicator_1.default,\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst error_classes_1 = require(\"../../compile/error_classes\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n // TODO See comment in dynamicRef.ts\n // This has to be improved to resolve #815.\n if (schema === \"#\" || schema === \"#/\")\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, env.root, baseId, schema);\n if (schOrEnv === undefined)\n throw new error_classes_1.MissingRefError(baseId, schema);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === env.root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: env.root });\n return callRef(cxt, codegen_1._ `${rootName}.validate`, env.root, env.root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: codegen_1.stringify(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: schema,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : codegen_1._ `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code(codegen_1._ `await ${code_1.callValidateCode(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if(codegen_1._ `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result(code_1.callValidateCode(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = codegen_1._ `${source}.errors`;\n gen.assign(names_1.default.vErrors, codegen_1._ `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, codegen_1._ `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", codegen_1._ `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", codegen_1._ `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\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};\nconst error = {\n message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data(codegen_1._ `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => codegen_1.str `should be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => codegen_1._ `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? codegen_1._ `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : codegen_1._ `${res} !== parseInt(${res})`;\n cxt.fail$data(codegen_1._ `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ucs2length_1 = require(\"../../compile/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return codegen_1.str `should NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => codegen_1._ `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n let len;\n if (it.opts.unicode === false) {\n len = codegen_1._ `${data}.length`;\n }\n else {\n const u2l = cxt.gen.scopeValue(\"func\", {\n ref: ucs2length_1.default,\n code: codegen_1._ `require(\"ajv/dist/compile/ucs2length\").default`,\n });\n len = codegen_1._ `${u2l}(${data})`;\n }\n cxt.fail$data(codegen_1._ `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\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)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => codegen_1.str `should match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => codegen_1._ `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode } = cxt;\n const regExp = $data ? codegen_1._ `(new RegExp(${schemaCode}, \"u\"))` : code_1.usePattern(gen, schema); // TODO regexp should be wrapped in try/catch\n cxt.fail$data(codegen_1._ `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return codegen_1.str `should NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => codegen_1._ `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data(codegen_1._ `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst validate_1 = require(\"../../compile/validate\");\nconst error = {\n message: ({ params: { missingProperty } }) => codegen_1.str `should have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => codegen_1._ `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : 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 validate_1.checkStrictMode(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n code_1.checkReportMissingProp(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\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 }\n else {\n gen.if(code_1.checkMissingProp(cxt, schema, missing));\n code_1.reportMissingProp(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if(code_1.noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, code_1.propertyInData(gen, data, missing, opts.ownProperties));\n gen.if(codegen_1.not(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return codegen_1.str `should NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => codegen_1._ `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data(codegen_1._ `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst equal = require(\"fast-deep-equal\");\nconst error = {\n message: ({ params: { i, j } }) => codegen_1.str `should NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => codegen_1._ `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? dataType_1.getSchemaTypes(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, codegen_1._ `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", codegen_1._ `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if(codegen_1._ `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = dataType_1.checkDataTypes(itemTypes, item, it.opts.strict, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", codegen_1._ `{}`);\n gen.for(codegen_1._ `;${i}--;`, () => {\n gen.let(item, codegen_1._ `${data}[${i}]`);\n gen.if(wrongType, codegen_1._ `continue`);\n if (itemTypes.length > 1)\n gen.if(codegen_1._ `typeof ${item} == \"string\"`, codegen_1._ `${item} += \"_\"`);\n gen\n .if(codegen_1._ `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, codegen_1._ `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code(codegen_1._ `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = cxt.gen.scopeValue(\"func\", {\n ref: equal,\n code: codegen_1._ `require(\"ajv/dist/compile/equal\")`,\n });\n const outer = gen.name(\"outer\");\n gen.label(outer).for(codegen_1._ `;${i}--;`, () => gen.for(codegen_1._ `${j} = ${i}; ${j}--;`, () => gen.if(codegen_1._ `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst equal = require(\"fast-deep-equal\");\nconst error = {\n message: \"should be equal to constant\",\n params: ({ schemaCode }) => codegen_1._ `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const eql = cxt.gen.scopeValue(\"func\", {\n ref: equal,\n code: codegen_1._ `require(\"ajv/dist/compile/equal\")`,\n });\n // TODO optimize for scalar values in schema\n cxt.fail$data(codegen_1._ `!${eql}(${cxt.data}, ${cxt.schemaCode})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst equal = require(\"fast-deep-equal\");\nconst error = {\n message: \"should be equal to one of the allowed values\",\n params: ({ schemaCode }) => codegen_1._ `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n const eql = cxt.gen.scopeValue(\"func\", {\n ref: equal,\n code: codegen_1._ `require(\"ajv/dist/compile/equal\")`,\n });\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = codegen_1.or(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if(codegen_1._ `${eql}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return sch && typeof sch === \"object\"\n ? codegen_1._ `${eql}(${data}, ${vSchema}[${i}])`\n : codegen_1._ `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst items_1 = require(\"./items\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nconst applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // array\n additionalItems_1.default,\n items_1.default,\n contains_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n];\nexports.default = applicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst subschema_1 = require(\"../../compile/subschema\");\nconst util_1 = require(\"../../compile/util\");\nconst validate_1 = require(\"../../compile/validate\");\nconst error = {\n message: ({ params: { len } }) => codegen_1.str `should NOT have more than ${len} items`,\n params: ({ params: { len } }) => codegen_1._ `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n validate_1.checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n it.items = true;\n const len = gen.const(\"len\", codegen_1._ `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass(codegen_1._ `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !util_1.alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", codegen_1._ `${len} <= ${items.length}`); // TODO var\n gen.if(codegen_1.not(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword: \"additionalItems\", dataProp: i, dataPropType: subschema_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if(codegen_1.not(valid), () => gen.break());\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n if (Array.isArray(schema)) {\n if (it.opts.unevaluated && schema.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schema.length, it.items);\n }\n validateTuple(schema);\n }\n else {\n it.items = true;\n if (util_1.alwaysValidSchema(it, schema))\n return;\n cxt.ok(code_1.validateArray(cxt));\n }\n function validateTuple(schArr) {\n const { parentSchema, data } = cxt;\n if (it.opts.strictTuples && !fullTupleSchema(schArr.length, parentSchema)) {\n const msg = `\"items\" is ${schArr.length}-tuple, but minItems or maxItems/additionalItems are not specified or different`;\n validate_1.checkStrictMode(it, msg, it.opts.strictTuples);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", codegen_1._ `${data}.length`);\n schArr.forEach((sch, i) => {\n if (util_1.alwaysValidSchema(it, sch))\n return;\n gen.if(codegen_1._ `${len} > ${i}`, () => cxt.subschema({\n keyword: \"items\",\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n }\n },\n};\nfunction fullTupleSchema(len, sch) {\n return len === sch.minItems && (len === sch.maxItems || sch.additionalItems === false);\n}\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst subschema_1 = require(\"../../compile/subschema\");\nconst util_1 = require(\"../../compile/util\");\nconst validate_1 = require(\"../../compile/validate\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? codegen_1.str `should contain at least ${min} valid item(s)`\n : codegen_1.str `should contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? codegen_1._ `{minContains: ${min}}` : codegen_1._ `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", codegen_1._ `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n validate_1.checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n validate_1.checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if (util_1.alwaysValidSchema(it, schema)) {\n let cond = codegen_1._ `${len} >= ${min}`;\n if (max !== undefined)\n cond = codegen_1._ `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\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 }\n else {\n gen.let(valid, false);\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n cxt.result(valid, () => cxt.reset());\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: subschema_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code(codegen_1._ `${count}++`);\n if (max === undefined) {\n gen.if(codegen_1._ `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if(codegen_1._ `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if(codegen_1._ `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return codegen_1.str `should have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => codegen_1._ `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = code_1.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 code_1.checkReportMissingProp(cxt, depProp);\n }\n });\n }\n else {\n gen.if(codegen_1._ `${hasProperty} && (${code_1.checkMissingProp(cxt, deps, missing)})`);\n code_1.reportMissingProp(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if (util_1.alwaysValidSchema(it, schemaDeps[prop]))\n continue;\n gen.if(code_1.propertyInData(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => codegen_1.str `property name '${params.propertyName}' is invalid`,\n params: ({ params }) => codegen_1._ `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if (util_1.alwaysValidSchema(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if(codegen_1.not(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst context_1 = require(\"../../compile/context\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new context_1.default(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = code_1.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 = util_1.mergeEvaluated.props(gen, util_1.toHash(allProps), it.props);\n }\n const properties = allProps.filter((p) => !util_1.alwaysValidSchema(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if(code_1.propertyInData(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst subschema_1 = require(\"../../compile/subschema\");\nconst validate_1 = require(\"../../compile/validate\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = code_1.schemaProperties(it, schema);\n // TODO mark properties matching patterns with always valid schemas as evaluated\n if (patterns.length === 0)\n return;\n const checkProperties = opts.strict && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = util_1.evaluatedPropsToName(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n validate_1.checkStrictMode(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if(codegen_1._ `${code_1.usePattern(gen, pat)}.test(${key})`, () => {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: subschema_1.Type.Str,\n }, valid);\n if (it.opts.unevaluated && props !== true) {\n gen.assign(codegen_1._ `${props}[${key}]`, true);\n }\n else if (!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(codegen_1.not(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if (util_1.alwaysValidSchema(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.result(valid, () => cxt.error(), () => cxt.reset());\n },\n error: {\n message: \"should NOT be valid\",\n },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: {\n message: \"should match some schema in anyOf\",\n },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"should match exactly one schema in oneOf\",\n params: ({ params }) => codegen_1._ `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const schArr = 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 gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if (util_1.alwaysValidSchema(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if(codegen_1._ `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, codegen_1._ `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if (util_1.alwaysValidSchema(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst validate_1 = require(\"../../compile/validate\");\nconst error = {\n message: ({ params }) => codegen_1.str `should match \"${params.ifClause}\" schema`,\n params: ({ params }) => codegen_1._ `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n validate_1.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)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\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 }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if(codegen_1.not(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, codegen_1._ `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !util_1.alwaysValidSchema(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n validate_1.checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => codegen_1.str `should match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => codegen_1._ `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", codegen_1._ `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if(codegen_1._ `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, codegen_1._ `${fDef}.type || \"string\"`).assign(format, codegen_1._ `${fDef}.validate`), () => gen.assign(fType, codegen_1._ `\"string\"`).assign(format, fDef));\n cxt.fail$data(codegen_1.or(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strict === false)\n return codegen_1.nil;\n return codegen_1._ `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? codegen_1._ `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : codegen_1._ `${format}(${data})`;\n const validData = codegen_1._ `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return codegen_1._ `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strict === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const fmt = gen.scopeValue(\"formats\", {\n key: schema,\n ref: fmtDef,\n code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(schema)}` : undefined,\n });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, codegen_1._ `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return codegen_1._ `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? codegen_1._ `${fmtRef}(${data})` : codegen_1._ `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Network = void 0;\nconst validation_1 = require(\"../validation\");\n/**\n * Different supported networks\n * @alpha\n */\nvar Network;\n(function (Network) {\n Network[\"ETHEREUM\"] = \"ETHEREUM\";\n Network[\"MATIC\"] = \"MATIC\";\n})(Network = exports.Network || (exports.Network = {}));\n/**\n * @alpha\n */\n(function (Network) {\n Network.schema = {\n type: 'string',\n enum: Object.values(Network),\n };\n Network.validate = validation_1.generateValidator(Network.schema);\n})(Network = exports.Network || (exports.Network = {}));\n//# sourceMappingURL=network.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MetaTransaction = void 0;\nconst validation_1 = require(\"../validation\");\n/**\n * @alpha\n */\nvar MetaTransaction;\n(function (MetaTransaction) {\n MetaTransaction.schema = {\n type: 'object',\n properties: {\n from: { type: 'string' },\n params: {\n type: 'array',\n items: [{ type: 'string' }, { type: 'string' }],\n additionalItems: false,\n minItems: 2,\n },\n },\n additionalProperties: false,\n required: ['from', 'params'],\n };\n MetaTransaction.validate = validation_1.generateValidator(MetaTransaction.schema);\n})(MetaTransaction = exports.MetaTransaction || (exports.MetaTransaction = {}));\n//# sourceMappingURL=meta-transactions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.World = exports.isInsideWorldLimits = exports.getWorld = void 0;\nconst validation_1 = require(\"../validation\");\n/**\n * Get World\n * @alpha\n */\nfunction getWorld() {\n return {\n validWorldRanges: [\n {\n xMin: -150,\n yMin: -150,\n xMax: 150,\n yMax: 150,\n },\n {\n xMin: 62,\n yMin: 151,\n xMax: 162,\n yMax: 158,\n },\n {\n xMin: 151,\n yMin: 144,\n xMax: 162,\n yMax: 150,\n },\n {\n xMin: 151,\n yMin: 59,\n xMax: 163,\n yMax: 143,\n },\n ],\n };\n}\nexports.getWorld = getWorld;\n/**\n * Check if is inside World Limits\n * @alpha\n */\nfunction isInsideWorldLimits(x, y) {\n const validWorldRanges = getWorld().validWorldRanges;\n for (var range of validWorldRanges) {\n if (x >= range.xMin &&\n x <= range.xMax &&\n y >= range.yMin &&\n y <= range.yMax) {\n return true;\n }\n }\n return false;\n}\nexports.isInsideWorldLimits = isInsideWorldLimits;\n/**\n * @alpha\n */\nvar World;\n(function (World) {\n World.schema = {\n type: \"object\",\n required: [\"validWorldRanges\"],\n properties: {\n validWorldRanges: {\n type: \"array\",\n default: [\n {\n xMin: -150,\n yMin: -150,\n xMax: 150,\n yMax: 150,\n },\n ],\n items: {\n type: \"object\",\n required: [\"xMin\", \"yMin\", \"xMax\", \"yMax\"],\n properties: {\n xMin: {\n type: \"integer\",\n },\n yMin: {\n type: \"integer\",\n },\n xMax: {\n type: \"integer\",\n },\n yMax: {\n type: \"integer\",\n },\n },\n },\n },\n },\n additionalProperties: false\n };\n World.validate = validation_1.generateValidator(World.schema);\n})(World = exports.World || (exports.World = {}));\n//# sourceMappingURL=world.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractConnector = void 0;\nconst abstract_connector_1 = require(\"@web3-react/abstract-connector\");\nObject.defineProperty(exports, \"AbstractConnector\", { enumerable: true, get: function () { return abstract_connector_1.AbstractConnector; } });\n//# sourceMappingURL=AbstractConnector.js.map","\"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.FortmaticConnector = void 0;\nconst fortmatic_connector_1 = require(\"@web3-react/fortmatic-connector\");\nconst configuration_1 = require(\"../configuration\");\nconst types_1 = require(\"../types\");\nclass FortmaticConnector extends fortmatic_connector_1.FortmaticConnector {\n constructor(chainId) {\n const { apiKeys } = configuration_1.getConfiguration()[types_1.ProviderType.FORTMATIC];\n super({ chainId, apiKey: apiKeys[chainId] });\n this.apiKeys = apiKeys;\n }\n getApiKey() {\n return __awaiter(this, void 0, void 0, function* () {\n const chainId = yield this.getChainId();\n return this.apiKeys[chainId];\n });\n }\n}\nexports.FortmaticConnector = FortmaticConnector;\n//# sourceMappingURL=FortmaticConnector.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InjectedConnector = void 0;\nconst injected_connector_1 = require(\"@web3-react/injected-connector\");\nclass InjectedConnector extends injected_connector_1.InjectedConnector {\n constructor(chainId) {\n super({\n supportedChainIds: [chainId]\n });\n }\n}\nexports.InjectedConnector = InjectedConnector;\n//# sourceMappingURL=InjectedConnector.js.map","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkConnector = exports.RPC_URLS = void 0;\nconst schemas_1 = require(\"@dcl/schemas\");\nconst network_connector_1 = require(\"@web3-react/network-connector\");\nexports.RPC_URLS = Object.freeze({\n [schemas_1.ChainId.ETHEREUM_MAINNET]: 'https://mainnet.infura.io/v3/21ee2680fd58460ba96d2b3addd7c38c',\n [schemas_1.ChainId.ETHEREUM_ROPSTEN]: 'https://ropsten.infura.io/v3/21ee2680fd58460ba96d2b3addd7c38c',\n [schemas_1.ChainId.ETHEREUM_RINKEBY]: 'https://rinkeby.infura.io/v3/21ee2680fd58460ba96d2b3addd7c38c',\n [schemas_1.ChainId.ETHEREUM_GOERLI]: 'https://goerli.infura.io/v3/21ee2680fd58460ba96d2b3addd7c38c',\n [schemas_1.ChainId.ETHEREUM_KOVAN]: 'https://kovan.infura.io/v3/21ee2680fd58460ba96d2b3addd7c38c',\n [schemas_1.ChainId.MATIC_MAINNET]: 'https://rpc-mainnet.maticvigil.com/v1/aad675783e3f73a13efbf6e95338d6de7fd5c9b9',\n [schemas_1.ChainId.MATIC_MUMBAI]: 'https://rpc-mumbai.maticvigil.com/v1/aad675783e3f73a13efbf6e95338d6de7fd5c9b9'\n});\nclass NetworkConnector extends network_connector_1.NetworkConnector {\n constructor(chainId) {\n super({ urls: exports.RPC_URLS, defaultChainId: chainId });\n }\n}\nexports.NetworkConnector = NetworkConnector;\n//# sourceMappingURL=NetworkConnector.js.map","\"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.WalletConnectConnector = void 0;\nconst walletconnect_connector_1 = require(\"@web3-react/walletconnect-connector\");\nconst configuration_1 = require(\"../configuration\");\nconst types_1 = require(\"../types\");\nclass WalletConnectConnector extends walletconnect_connector_1.WalletConnectConnector {\n constructor(chainId) {\n const { urls } = configuration_1.getConfiguration()[types_1.ProviderType.WALLET_CONNECT];\n const params = {\n rpc: { [chainId]: urls[chainId] },\n qrcode: true,\n pollingInterval: 15000\n };\n super(params);\n this.params = params;\n }\n getRpc() {\n return __awaiter(this, void 0, void 0, function* () {\n const chainId = yield this.getChainId();\n return this.params.rpc[chainId];\n });\n }\n getQrCode() {\n return this.params.qrcode;\n }\n getPollingInterval() {\n return this.params.pollingInterval;\n }\n}\nexports.WalletConnectConnector = WalletConnectConnector;\n//# sourceMappingURL=WalletConnectConnector.js.map","\"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 __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(\"./Storage\"), exports);\n__exportStar(require(\"./LocalStorage\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalStorage = void 0;\nconst Storage_1 = require(\"./Storage\");\nclass LocalStorage extends Storage_1.Storage {\n get(key) {\n const result = window.localStorage.getItem(key);\n return result === null ? undefined : result;\n }\n set(key, value) {\n window.localStorage.setItem(key, value);\n }\n remove(key) {\n window.localStorage.removeItem(key);\n }\n}\nexports.LocalStorage = LocalStorage;\n//# sourceMappingURL=LocalStorage.js.map","\"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.ProviderAdapter = void 0;\n/**\n * Adapt popular provider methods to they can work across different popular web3 libs (such as web3x and ethers).\n * `sendAsync`, another popular method, is not being adapted here as we didn't find it necessary in our testing.\n * In case you need to adapt it, please create and issue or send a PR\n */\nclass ProviderAdapter {\n constructor(provider) {\n this.provider = provider;\n this.id = 0;\n this.on = (event, listener) => {\n return this.provider.on(event, listener);\n };\n this.emit = (event, ...args) => {\n return this.provider.emit(event, args);\n };\n this.removeListener = (event, listener) => {\n return this.provider.removeListener(event, listener);\n };\n this.request = ({ method, params }) => __awaiter(this, void 0, void 0, function* () {\n return this.isModernProvider()\n ? this.provider.request({ method, params })\n : this.provider.send(method, params);\n });\n this.sendAsync = (args, callback) => __awaiter(this, void 0, void 0, function* () {\n return this.hasSendAsync()\n ? this.provider.sendAsync(args, callback)\n : this.send(args, callback);\n });\n }\n static adapt(provider) {\n const providerAdapter = new ProviderAdapter(provider);\n return Object.assign(Object.assign({}, provider), { on: providerAdapter.on, emit: providerAdapter.emit, removeListener: providerAdapter.removeListener, request: providerAdapter.request, sendAsync: providerAdapter.sendAsync, send: providerAdapter.send.bind(providerAdapter) });\n }\n send(methodOrArgs, paramsOrCallback) {\n return __awaiter(this, void 0, void 0, function* () {\n let method;\n let params;\n let callback;\n const hasCallback = typeof paramsOrCallback === 'function';\n if (hasCallback) {\n const args = methodOrArgs; // if sendParams is a function, the first argument has all the other data\n params = args.params || [];\n method = args.method;\n callback = paramsOrCallback;\n }\n else {\n method = methodOrArgs;\n params = paramsOrCallback || [];\n callback = (err, value) => {\n if (err) {\n throw err;\n }\n return value;\n };\n }\n if (this.isModernProvider()) {\n const [err, result] = yield this.provider\n .request({\n method,\n params\n })\n .then(result => [null, result])\n .catch(error => [error, undefined]);\n const returnValue = hasCallback\n ? { id: '', jsonrpc: '2.0', result }\n : result;\n return callback(err, returnValue);\n }\n else {\n this.patchOldMobile();\n const [err, value] = hasCallback\n ? yield new Promise(resolve => this.provider.send(methodOrArgs, (err, value) => {\n resolve([err, value]);\n }))\n : yield new Promise(resolve => this.provider.send({\n jsonrpc: '2.0',\n id: ++this.id,\n method,\n params\n }, (err, value) => {\n resolve([\n value && value.hasOwnProperty('error') ? value.error : err,\n value && value.hasOwnProperty('result') ? value.result : value\n ]);\n }));\n return callback(err, value);\n }\n });\n }\n isModernProvider() {\n return typeof this.provider['request'] === 'function';\n }\n hasSendAsync() {\n return typeof this.provider['sendAsync'] === 'function';\n }\n patchOldMobile() {\n // Patch for old providers and mobile providers which do not use promises at send as sendAsync\n if (this.provider &&\n !this.provider.isDapper &&\n !this.provider.isFortmatic &&\n !this.provider.isMetamask &&\n this.hasSendAsync() &&\n this.provider.send !== this.provider.sendAsync) {\n // send has to be replaced by sendAsync for old providers\n this.provider.send = this.provider.sendAsync;\n }\n }\n}\nexports.ProviderAdapter = ProviderAdapter;\n//# sourceMappingURL=ProviderAdapter.js.map","\"use strict\";\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};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNumber = exports.formatDateTime = exports.formatDate = exports.distanceInWordsToNow = exports.toObjectByKey = exports.toObjectById = exports.insertScript = exports.isMobile = void 0;\nconst format_1 = __importDefault(require(\"date-fns/format\"));\nconst distance_in_words_to_now_1 = __importDefault(require(\"date-fns/distance_in_words_to_now\"));\nconst utils_1 = require(\"../modules/translation/utils\");\nfunction isMobile() {\n // WARN: Super naive mobile device check.\n // we're using it on low-stake checks, where failing to detect some browsers is not a big deal.\n // If you need more specificity you may want to change this implementation.\n const navigator = window.navigator;\n return (/Mobi/i.test(navigator.userAgent) || /Android/i.test(navigator.userAgent));\n}\nexports.isMobile = isMobile;\nfunction insertScript(_a) {\n var { type = 'text/javascript', async = true } = _a, props = __rest(_a, [\"type\", \"async\"]);\n const script = document.createElement('script');\n Object.assign(script, Object.assign({ type, async: async }, props)); // WARN: babel breaks on `{ async }`\n document.body.appendChild(script);\n return script;\n}\nexports.insertScript = insertScript;\nfunction toObjectById(values, currentValues = {}) {\n return toObjectByKey(values, currentValues, 'id');\n}\nexports.toObjectById = toObjectById;\nfunction toObjectByKey(values, currentValues = {}, key) {\n return values.reduce((obj, value) => {\n obj[value[key]] = value;\n return obj;\n }, Object.assign({}, currentValues));\n}\nexports.toObjectByKey = toObjectByKey;\nfunction distanceInWordsToNow(date, addSuffix = true) {\n return distance_in_words_to_now_1.default(date, {\n addSuffix,\n locale: utils_1.getCurrentLocale()\n });\n}\nexports.distanceInWordsToNow = distanceInWordsToNow;\nfunction formatDate(date, format = 'MMMM Do, YYYY') {\n return format_1.default(date, format, {\n locale: utils_1.getCurrentLocale()\n });\n}\nexports.formatDate = formatDate;\nfunction formatDateTime(date, format = 'MMMM Do, YYYY - hh:mm aa') {\n return format_1.default(date, format, {\n locale: utils_1.getCurrentLocale()\n });\n}\nexports.formatDateTime = formatDateTime;\nfunction formatNumber(amount = 0, digits = 2) {\n return parseFloat((+amount).toFixed(digits)).toLocaleString();\n}\nexports.formatNumber = formatNumber;\n//# sourceMappingURL=utils.js.map","var getDayOfYear = require('../get_day_of_year/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\nvar getISOYear = require('../get_iso_year/index.js')\nvar parse = require('../parse/index.js')\nvar isValid = require('../is_valid/index.js')\nvar enLocale = require('../locale/en/index.js')\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit | Token | Result examples |\n * |-------------------------|-------|----------------------------------|\n * | Month | M | 1, 2, ..., 12 |\n * | | Mo | 1st, 2nd, ..., 12th |\n * | | MM | 01, 02, ..., 12 |\n * | | MMM | Jan, Feb, ..., Dec |\n * | | MMMM | January, February, ..., December |\n * | Quarter | Q | 1, 2, 3, 4 |\n * | | Qo | 1st, 2nd, 3rd, 4th |\n * | Day of month | D | 1, 2, ..., 31 |\n * | | Do | 1st, 2nd, ..., 31st |\n * | | DD | 01, 02, ..., 31 |\n * | Day of year | DDD | 1, 2, ..., 366 |\n * | | DDDo | 1st, 2nd, ..., 366th |\n * | | DDDD | 001, 002, ..., 366 |\n * | Day of week | d | 0, 1, ..., 6 |\n * | | do | 0th, 1st, ..., 6th |\n * | | dd | Su, Mo, ..., Sa |\n * | | ddd | Sun, Mon, ..., Sat |\n * | | dddd | Sunday, Monday, ..., Saturday |\n * | Day of ISO week | E | 1, 2, ..., 7 |\n * | ISO week | W | 1, 2, ..., 53 |\n * | | Wo | 1st, 2nd, ..., 53rd |\n * | | WW | 01, 02, ..., 53 |\n * | Year | YY | 00, 01, ..., 99 |\n * | | YYYY | 1900, 1901, ..., 2099 |\n * | ISO week-numbering year | GG | 00, 01, ..., 99 |\n * | | GGGG | 1900, 1901, ..., 2099 |\n * | AM/PM | A | AM, PM |\n * | | a | am, pm |\n * | | aa | a.m., p.m. |\n * | Hour | H | 0, 1, ... 23 |\n * | | HH | 00, 01, ... 23 |\n * | | h | 1, 2, ..., 12 |\n * | | hh | 01, 02, ..., 12 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | 1/10 of second | S | 0, 1, ..., 9 |\n * | 1/100 of second | SS | 00, 01, ..., 99 |\n * | Millisecond | SSS | 000, 001, ..., 999 |\n * | Timezone | Z | -01:00, +00:00, ... +12:00 |\n * | | ZZ | -0100, +0000, ..., +1200 |\n * | Seconds timestamp | X | 512969520 |\n * | Milliseconds timestamp | x | 512969520900 |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n * new Date(2014, 6, 2),\n * 'Do [de] MMMM YYYY',\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format (dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n var options = dirtyOptions || {}\n\n var locale = options.locale\n var localeFormatters = enLocale.format.formatters\n var formattingTokensRegExp = enLocale.format.formattingTokensRegExp\n if (locale && locale.format && locale.format.formatters) {\n localeFormatters = locale.format.formatters\n\n if (locale.format.formattingTokensRegExp) {\n formattingTokensRegExp = locale.format.formattingTokensRegExp\n }\n }\n\n var date = parse(dirtyDate)\n\n if (!isValid(date)) {\n return 'Invalid Date'\n }\n\n var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp)\n\n return formatFn(date)\n}\n\nvar formatters = {\n // Month: 1, 2, ..., 12\n 'M': function (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n 'MM': function (date) {\n return addLeadingZeros(date.getMonth() + 1, 2)\n },\n\n // Quarter: 1, 2, 3, 4\n 'Q': function (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Day of month: 1, 2, ..., 31\n 'D': function (date) {\n return date.getDate()\n },\n\n // Day of month: 01, 02, ..., 31\n 'DD': function (date) {\n return addLeadingZeros(date.getDate(), 2)\n },\n\n // Day of year: 1, 2, ..., 366\n 'DDD': function (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n 'DDDD': function (date) {\n return addLeadingZeros(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n 'd': function (date) {\n return date.getDay()\n },\n\n // Day of ISO week: 1, 2, ..., 7\n 'E': function (date) {\n return date.getDay() || 7\n },\n\n // ISO week: 1, 2, ..., 53\n 'W': function (date) {\n return getISOWeek(date)\n },\n\n // ISO week: 01, 02, ..., 53\n 'WW': function (date) {\n return addLeadingZeros(getISOWeek(date), 2)\n },\n\n // Year: 00, 01, ..., 99\n 'YY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4).substr(2)\n },\n\n // Year: 1900, 1901, ..., 2099\n 'YYYY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4)\n },\n\n // ISO week-numbering year: 00, 01, ..., 99\n 'GG': function (date) {\n return String(getISOYear(date)).substr(2)\n },\n\n // ISO week-numbering year: 1900, 1901, ..., 2099\n 'GGGG': function (date) {\n return getISOYear(date)\n },\n\n // Hour: 0, 1, ... 23\n 'H': function (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n 'HH': function (date) {\n return addLeadingZeros(date.getHours(), 2)\n },\n\n // Hour: 1, 2, ..., 12\n 'h': function (date) {\n var hours = date.getHours()\n if (hours === 0) {\n return 12\n } else if (hours > 12) {\n return hours % 12\n } else {\n return hours\n }\n },\n\n // Hour: 01, 02, ..., 12\n 'hh': function (date) {\n return addLeadingZeros(formatters['h'](date), 2)\n },\n\n // Minute: 0, 1, ..., 59\n 'm': function (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n 'mm': function (date) {\n return addLeadingZeros(date.getMinutes(), 2)\n },\n\n // Second: 0, 1, ..., 59\n 's': function (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n 'ss': function (date) {\n return addLeadingZeros(date.getSeconds(), 2)\n },\n\n // 1/10 of second: 0, 1, ..., 9\n 'S': function (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n 'SS': function (date) {\n return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2)\n },\n\n // Millisecond: 000, 001, ..., 999\n 'SSS': function (date) {\n return addLeadingZeros(date.getMilliseconds(), 3)\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n 'Z': function (date) {\n return formatTimezone(date.getTimezoneOffset(), ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n 'ZZ': function (date) {\n return formatTimezone(date.getTimezoneOffset())\n },\n\n // Seconds timestamp: 512969520\n 'X': function (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n 'x': function (date) {\n return date.getTime()\n }\n}\n\nfunction buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) {\n var array = formatStr.match(formattingTokensRegExp)\n var length = array.length\n\n var i\n var formatter\n for (i = 0; i < length; i++) {\n formatter = localeFormatters[array[i]] || formatters[array[i]]\n if (formatter) {\n array[i] = formatter\n } else {\n array[i] = removeFormattingTokens(array[i])\n }\n }\n\n return function (date) {\n var output = ''\n for (var i = 0; i < length; i++) {\n if (array[i] instanceof Function) {\n output += array[i](date, formatters)\n } else {\n output += array[i]\n }\n }\n return output\n }\n}\n\nfunction removeFormattingTokens (input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|]$/g, '')\n }\n return input.replace(/\\\\/g, '')\n}\n\nfunction formatTimezone (offset, delimeter) {\n delimeter = delimeter || ''\n var sign = offset > 0 ? '-' : '+'\n var absOffset = Math.abs(offset)\n var hours = Math.floor(absOffset / 60)\n var minutes = absOffset % 60\n return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction addLeadingZeros (number, targetLength) {\n var output = Math.abs(number).toString()\n while (output.length < targetLength) {\n output = '0' + output\n }\n return output\n}\n\nmodule.exports = format\n","var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = differenceInCalendarDays(date, startOfYear(date))\n var dayOfYear = diff + 1\n return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n","var MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nmodule.exports = function getTimezoneOffsetInMilliseconds (dirtyDate) {\n var date = new Date(dirtyDate.getTime())\n var baseTimezoneOffset = date.getTimezoneOffset()\n date.setSeconds(0, 0)\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE\n\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset\n}\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n var cleanDate = parse(dirtyDate)\n var date = new Date(0)\n date.setFullYear(cleanDate.getFullYear(), 0, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfYear\n","var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft)\n var startOfDayRight = startOfDay(dirtyDateRight)\n\n var timestampLeft = startOfDayLeft.getTime() -\n startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfDayRight.getTime() -\n startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfDay\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n date.setDate(date.getDate() - diff)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(year, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuary)\n return date\n}\n\nmodule.exports = startOfISOYear\n","var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n if (isDate(dirtyDate)) {\n return !isNaN(dirtyDate)\n } else {\n throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n }\n}\n\nmodule.exports = isValid\n","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n","var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n var meridiemUppercase = ['AM', 'PM']\n var meridiemLowercase = ['am', 'pm']\n var meridiemFull = ['a.m.', 'p.m.']\n\n var formatters = {\n // Month: Jan, Feb, ..., Dec\n 'MMM': function (date) {\n return months3char[date.getMonth()]\n },\n\n // Month: January, February, ..., December\n 'MMMM': function (date) {\n return monthsFull[date.getMonth()]\n },\n\n // Day of week: Su, Mo, ..., Sa\n 'dd': function (date) {\n return weekdays2char[date.getDay()]\n },\n\n // Day of week: Sun, Mon, ..., Sat\n 'ddd': function (date) {\n return weekdays3char[date.getDay()]\n },\n\n // Day of week: Sunday, Monday, ..., Saturday\n 'dddd': function (date) {\n return weekdaysFull[date.getDay()]\n },\n\n // AM, PM\n 'A': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n },\n\n // am, pm\n 'a': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n },\n\n // a.m., p.m.\n 'aa': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n }\n }\n\n // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n ordinalFormatters.forEach(function (formatterToken) {\n formatters[formatterToken + 'o'] = function (date, formatters) {\n return ordinal(formatters[formatterToken](date))\n }\n })\n\n return {\n formatters: formatters,\n formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n }\n}\n\nfunction ordinal (number) {\n var rem100 = number % 100\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n","var commonFormatterKeys = [\n 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n 'H', 'HH', 'h', 'hh', 'm', 'mm',\n 's', 'ss', 'S', 'SS', 'SSS',\n 'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n var formatterKeys = []\n for (var key in formatters) {\n if (formatters.hasOwnProperty(key)) {\n formatterKeys.push(key)\n }\n }\n\n var formattingTokens = commonFormatterKeys\n .concat(formatterKeys)\n .sort()\n .reverse()\n var formattingTokensRegExp = new RegExp(\n '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n )\n\n return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n","var distanceInWords = require('../distance_in_words/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = distanceInWordsToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = distanceInWordsToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = distanceInWordsToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWordsToNow (dirtyDate, dirtyOptions) {\n return distanceInWords(Date.now(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = distanceInWordsToNow\n","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar differenceInMonths = require('../difference_in_months/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_TWO_MONTHS = 86400\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWords(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 1)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = distanceInWords(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWords(\n * new Date(2016, 0, 1),\n * new Date(2015, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWords(\n * new Date(2016, 7, 1),\n * new Date(2015, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n var options = dirtyOptions || {}\n\n var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n var locale = options.locale\n var localize = enLocale.distanceInWords.localize\n if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n localize = locale.distanceInWords.localize\n }\n\n var localizeOptions = {\n addSuffix: Boolean(options.addSuffix),\n comparison: comparison\n }\n\n var dateLeft, dateRight\n if (comparison > 0) {\n dateLeft = parse(dirtyDateToCompare)\n dateRight = parse(dirtyDate)\n } else {\n dateLeft = parse(dirtyDate)\n dateRight = parse(dirtyDateToCompare)\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft)\n var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n var minutes = Math.round(seconds / 60) - offset\n var months\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return localize('lessThanXSeconds', 5, localizeOptions)\n } else if (seconds < 10) {\n return localize('lessThanXSeconds', 10, localizeOptions)\n } else if (seconds < 20) {\n return localize('lessThanXSeconds', 20, localizeOptions)\n } else if (seconds < 40) {\n return localize('halfAMinute', null, localizeOptions)\n } else if (seconds < 60) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', 1, localizeOptions)\n }\n } else {\n if (minutes === 0) {\n return localize('lessThanXMinutes', 1, localizeOptions)\n } else {\n return localize('xMinutes', minutes, localizeOptions)\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return localize('xMinutes', minutes, localizeOptions)\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return localize('aboutXHours', 1, localizeOptions)\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60)\n return localize('aboutXHours', hours, localizeOptions)\n\n // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return localize('xDays', 1, localizeOptions)\n\n // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY)\n return localize('xDays', days, localizeOptions)\n\n // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('aboutXMonths', months, localizeOptions)\n }\n\n months = differenceInMonths(dateRight, dateLeft)\n\n // 2 months up to 12 months\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)\n return localize('xMonths', nearestMonth, localizeOptions)\n\n // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12\n var years = Math.floor(months / 12)\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return localize('aboutXYears', years, localizeOptions)\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return localize('overXYears', years, localizeOptions)\n\n // N years 9 months up to N year 12 months\n } else {\n return localize('almostXYears', years + 1, localizeOptions)\n }\n }\n}\n\nmodule.exports = distanceInWords\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft > timeRight) {\n return -1\n } else if (timeLeft < timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareDesc\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds (dirtyDateLeft, dirtyDateRight) {\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInSeconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n return dateLeft.getTime() - dateRight.getTime()\n}\n\nmodule.exports = differenceInMilliseconds\n","var parse = require('../parse/index.js')\nvar differenceInCalendarMonths = require('../difference_in_calendar_months/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 7\n */\nfunction differenceInMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var sign = compareAsc(dateLeft, dateRight)\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference)\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign\n return sign * (difference - isLastMonthNotFull)\n}\n\nmodule.exports = differenceInMonths\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var dateRight = parse(dirtyDateRight)\n\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth()\n\n return yearDiff * 12 + monthDiff\n}\n\nmodule.exports = differenceInCalendarMonths\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * )\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc (dirtyDateLeft, dirtyDateRight) {\n var dateLeft = parse(dirtyDateLeft)\n var timeLeft = dateLeft.getTime()\n var dateRight = parse(dirtyDateRight)\n var timeRight = dateRight.getTime()\n\n if (timeLeft < timeRight) {\n return -1\n } else if (timeLeft > timeRight) {\n return 1\n } else {\n return 0\n }\n}\n\nmodule.exports = compareAsc\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergeTranslations = exports.T = exports.t = exports.getCurrentLocale = exports.setCurrentLocale = exports.getPreferredLocale = exports.I18nProvider = void 0;\nconst react_intl_1 = require(\"react-intl\");\nconst cache = react_intl_1.createIntlCache();\nlet currentLocale;\nexports.I18nProvider = react_intl_1.IntlProvider;\nfunction getPreferredLocale(availableLocales) {\n if (!availableLocales) {\n throw new Error('Failed to get preferred locale: Missing locale list');\n }\n const navigator = window.navigator;\n const navigatorLocale = (navigator.languages && navigator.languages[0]) || navigator.language;\n let locale = navigatorLocale.slice(0, 2);\n if (!availableLocales.includes(locale)) {\n return null;\n }\n return locale;\n}\nexports.getPreferredLocale = getPreferredLocale;\nfunction setCurrentLocale(localeName, messages) {\n const locale = {\n en: 'en-EN',\n es: 'es-ES',\n fr: 'fr-FR',\n ko: 'ko-KR',\n zh: 'zh-CN',\n ja: 'ja-JP'\n }[localeName];\n currentLocale = react_intl_1.createIntl({ locale, messages }, cache);\n}\nexports.setCurrentLocale = setCurrentLocale;\nfunction getCurrentLocale() {\n return currentLocale;\n}\nexports.getCurrentLocale = getCurrentLocale;\nfunction t(id, values) {\n return currentLocale.formatMessage({ id }, values);\n}\nexports.t = t;\nexports.T = react_intl_1.FormattedMessage;\nfunction mergeTranslations(target = {}, ...sources) {\n return [target, ...sources].reduce((result, obj) => _mergeTranslations(result, obj), {});\n}\nexports.mergeTranslations = mergeTranslations;\nfunction _mergeTranslations(target = {}, source = {}) {\n const merged = Object.keys(source).reduce((result, key) => {\n // @ts-ignore\n result[key] =\n typeof source[key] === 'object'\n ? _mergeTranslations(target[key], source[key])\n : source[key];\n return result;\n }, target);\n return merged;\n}\n//# sourceMappingURL=utils.js.map","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n})(TYPE || (TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nimport { TYPE, } from './types';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = \"#\";\n var peg$c3 = peg$literalExpectation(\"#\", false);\n var peg$c4 = function () {\n return __assign({ type: TYPE.pound }, insertLocation());\n };\n var peg$c5 = peg$otherExpectation(\"argumentElement\");\n var peg$c6 = \"{\";\n var peg$c7 = peg$literalExpectation(\"{\", false);\n var peg$c8 = \"}\";\n var peg$c9 = peg$literalExpectation(\"}\", false);\n var peg$c10 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c12 = /^['\\/{}]/;\n var peg$c13 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c14 = peg$anyExpectation();\n var peg$c15 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c16 = \"/\";\n var peg$c17 = peg$literalExpectation(\"/\", false);\n var peg$c18 = function (option) { return option; };\n var peg$c19 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c20 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c21 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c22 = \"::\";\n var peg$c23 = peg$literalExpectation(\"::\", false);\n var peg$c24 = function (skeleton) { return skeleton; };\n var peg$c25 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c26 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c27 = \",\";\n var peg$c28 = peg$literalExpectation(\",\", false);\n var peg$c29 = \"number\";\n var peg$c30 = peg$literalExpectation(\"number\", false);\n var peg$c31 = function (value, type, style) {\n return __assign({ type: type === 'number' ? TYPE.number : type === 'date' ? TYPE.date : TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c32 = \"'\";\n var peg$c33 = peg$literalExpectation(\"'\", false);\n var peg$c34 = /^[^']/;\n var peg$c35 = peg$classExpectation([\"'\"], true, false);\n var peg$c36 = /^[^a-zA-Z'{}]/;\n var peg$c37 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c38 = /^[a-zA-Z]/;\n var peg$c39 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c40 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c41 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c42 = \"date\";\n var peg$c43 = peg$literalExpectation(\"date\", false);\n var peg$c44 = \"time\";\n var peg$c45 = peg$literalExpectation(\"time\", false);\n var peg$c46 = \"plural\";\n var peg$c47 = peg$literalExpectation(\"plural\", false);\n var peg$c48 = \"selectordinal\";\n var peg$c49 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c50 = \"offset:\";\n var peg$c51 = peg$literalExpectation(\"offset:\", false);\n var peg$c52 = function (value, pluralType, offset, options) {\n return __assign({ type: TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c53 = \"select\";\n var peg$c54 = peg$literalExpectation(\"select\", false);\n var peg$c55 = function (value, options) {\n return __assign({ type: TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c56 = \"=\";\n var peg$c57 = peg$literalExpectation(\"=\", false);\n var peg$c58 = function (id) { messageCtx.push('select'); return true; };\n var peg$c59 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c60 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c61 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c62 = peg$otherExpectation(\"whitespace\");\n var peg$c63 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c64 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c65 = peg$otherExpectation(\"syntax pattern\");\n var peg$c66 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c67 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c68 = peg$otherExpectation(\"optional whitespace\");\n var peg$c69 = peg$otherExpectation(\"number\");\n var peg$c70 = \"-\";\n var peg$c71 = peg$literalExpectation(\"-\", false);\n var peg$c72 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c73 = peg$otherExpectation(\"apostrophe\");\n var peg$c74 = peg$otherExpectation(\"double apostrophes\");\n var peg$c75 = \"''\";\n var peg$c76 = peg$literalExpectation(\"''\", false);\n var peg$c77 = function () { return \"'\"; };\n var peg$c78 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c79 = function (x) {\n return (x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}'));\n };\n var peg$c80 = \"\\n\";\n var peg$c81 = peg$literalExpectation(\"\\n\", false);\n var peg$c82 = function (x) {\n return x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c83 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c84 = peg$otherExpectation(\"argNumber\");\n var peg$c85 = \"0\";\n var peg$c86 = peg$literalExpectation(\"0\", false);\n var peg$c87 = function () { return 0; };\n var peg$c88 = /^[1-9]/;\n var peg$c89 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c90 = /^[0-9]/;\n var peg$c91 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c92 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c93 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c2;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c8;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c16;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c19);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c25();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c29) {\n s7 = peg$c29;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c32;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c42) {\n s7 = peg$c42;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c46) {\n s7 = peg$c46;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c47);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c50) {\n s12 = peg$c50;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c8;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c53) {\n s7 = peg$c53;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c8;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c56;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c58(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c59(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c60(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c63.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c68);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c70;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c71);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c72(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c32;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c74);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c32;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c79(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c82(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c85;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c88.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","import { pegParse } from './parser';\nimport { normalizeHashtagInPlural } from './normalize';\nexport * from './types';\nexport * from './parser';\nexport * from './skeleton';\nexport function parse(input, opts) {\n var els = pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalizeHashtagInPlural(els);\n }\n return els;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) pattenrs are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function convertNumberSkeletonToNumberFormatOptions(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, } from 'intl-messageformat-parser';\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: 0 /* literal */,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: 0 /* literal */,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: 0 /* literal */,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\");\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: 1 /* argument */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + value];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\");\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\nexport function formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"</\" + tagName + \">\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nexport function formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"<formatted-message id=\\\"\" + TEMPLATE_ID + \"\\\">\" + formattedMessage + \"</formatted-message>\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `<formatted-message/>` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { parse } from 'intl-messageformat-parser';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { formatToString, formatToParts, formatHTMLMessage, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nexport function createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n return formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport IntlMessageFormat from './core';\nexport * from './formatters';\nexport * from './core';\nexport default IntlMessageFormat;\n","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n//# sourceMappingURL=invariant.js.map","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\nimport * as React from 'react';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { invariant } from '@formatjs/intl-utils';\nconst ESCAPED_CHARS = {\n 38: '&',\n 62: '>',\n 60: '<',\n 34: '"',\n 39: ''',\n};\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match.charCodeAt(0)]);\n}\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception.stack}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\nexport const DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n textComponent: React.Fragment,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache = createIntlCache()) {\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n const ListFormat = Intl.ListFormat;\n const DisplayNames = Intl.DisplayNames;\n return {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat, cache.message),\n getRelativeTimeFormat: memoizeIntlConstructor(RelativeTimeFormat, cache.relativeTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n getListFormat: memoizeIntlConstructor(ListFormat, cache.list),\n getDisplayNames: memoizeIntlConstructor(DisplayNames, cache.displayNames),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n const formatType = formats && formats[type];\n let format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(createError(`No ${type} format named: ${name}`));\n}\n","import * as React from 'react';\nimport * as hoistNonReactStatics_ from 'hoist-non-react-statics';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nconst hoistNonReactStatics = hoistNonReactStatics_.default || hoistNonReactStatics_;\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nconst IntlContext = React.createContext(null);\nconst { Consumer: IntlConsumer, Provider: IntlProvider } = IntlContext;\nexport const Provider = IntlProvider;\nexport const Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n const { intlPropName = 'intl', forwardRef = false, enforceContext = true } = options || {};\n const WithIntl = props => (React.createElement(IntlConsumer, null, (intl) => {\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n return (React.createElement(WrappedComponent, Object.assign({}, props, {\n [intlPropName]: intl,\n }, { ref: forwardRef ? props.forwardedRef : null })));\n }));\n WithIntl.displayName = `injectIntl(${getDisplayName(WrappedComponent)})`;\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef((props, ref) => (React.createElement(WithIntl, Object.assign({}, props, { forwardedRef: ref })))), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","var __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};\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport const FormattedNumberParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n}));\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n const ComponentParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n const formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n }));\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n const Component = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n const formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n const Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n }));\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { useContext } from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n const intl = useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // Unified NumberFormat (Stage 3 as of 10/22/19)\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter({ locale, formats, onError, }, getNumberFormat, options = {}) {\n const { format } = options;\n const defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n const filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst RELATIVE_TIME_FORMAT_OPTIONS = [\n 'numeric',\n 'style',\n];\nfunction getFormatter({ locale, formats, onError, }, getRelativeTimeFormat, options = {}) {\n const { format } = options;\n const defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n const filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options = {}) {\n if (!unit) {\n unit = 'second';\n }\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(createError(`Intl.RelativeTimeFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-relativetimeformat\"\n`));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(createError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { createError, filterProps, getNamedFormat } from '../utils';\nconst DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport function getFormatter({ locale, formats, onError, timeZone, }, type, getDateTimeFormat, options = {}) {\n const { format } = options;\n const defaults = Object.assign(Object.assign({}, (timeZone && { timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = Object.assign(Object.assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps, createError } from '../utils';\nconst PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural({ locale, onError }, getPluralRules, value, options = {}) {\n if (!Intl.PluralRules) {\n onError(createError(`Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n`));\n }\n const filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n return 'other';\n}\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport { createError, escape } from '../utils';\nimport IntlMessageFormat from 'intl-messageformat';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce((all, k) => {\n all[k] = Object.assign({ timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n const keys = Object.keys(Object.assign(Object.assign({}, opts1), opts2));\n return keys.reduce((all, k) => {\n all[k] = Object.assign(Object.assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n const mfFormats = IntlMessageFormat.formats;\n return Object.assign(Object.assign(Object.assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport const prepareIntlMessageFormatHtmlOutput = (chunks) => React.createElement(React.Fragment, null, ...chunks);\nexport function formatMessage({ locale, formats, messages, defaultLocale, defaultFormats, onError, timeZone, }, state, messageDescriptor = { id: '' }, values = {}) {\n const { id, defaultMessage } = messageDescriptor;\n // `id` is a required field of a Message Descriptor.\n invariant(!!id, '[React Intl] An `id` must be provided to format a message.');\n const message = messages && messages[String(id)];\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n let formattedMessageParts = [];\n if (message) {\n try {\n const formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n }\n else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n onError(createError(`Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n if (!formattedMessageParts.length && defaultMessage) {\n try {\n const formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting the default message for: \"${id}\"`, e));\n }\n }\n if (!formattedMessageParts.length) {\n onError(createError(`Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`));\n if (typeof message === 'string') {\n return message || defaultMessage || String(id);\n }\n return defaultMessage || String(id);\n }\n if (formattedMessageParts.length === 1 &&\n typeof formattedMessageParts[0] === 'string') {\n return formattedMessageParts[0] || defaultMessage || String(id);\n }\n return prepareIntlMessageFormatHtmlOutput(formattedMessageParts);\n}\nexport function formatHTMLMessage(config, state, messageDescriptor = { id: '' }, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n const escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n const value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","import { filterProps, createError } from '../utils';\nconst LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nconst now = Date.now();\nfunction generateToken(i) {\n return `${now}_${i}_${now}`;\n}\nexport function formatList({ locale, onError }, getListFormat, values, options = {}) {\n const ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(createError(`Intl.ListFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-listformat\"\n`));\n }\n const filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n const richValues = {};\n const serializedValues = values.map((v, i) => {\n if (typeof v === 'object') {\n const id = generateToken(i);\n richValues[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n const parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce((all, el) => {\n const val = el.value;\n if (richValues[val]) {\n all.push(richValues[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(createError('Error formatting list.', e));\n }\n return values;\n}\n","import { filterProps, createError } from '../utils';\nconst DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName({ locale, onError }, getDisplayNames, value, options = {}) {\n const DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(createError(`Intl.DisplayNames is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-displaynames\"\n`));\n }\n const filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(createError('Error formatting display name.', e));\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { createError, DEFAULT_INTL_CONFIG, createFormatters, invariantIntlContext, createIntlCache, } from '../utils';\nimport { formatNumber, formatNumberToParts } from '../formatters/number';\nimport { formatRelativeTime } from '../formatters/relativeTime';\nimport { formatDate, formatTime, formatDateToParts, formatTimeToParts, } from '../formatters/dateTime';\nimport { formatPlural } from '../formatters/plural';\nimport { formatMessage, formatHTMLMessage } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n };\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n const formatters = createFormatters(cache);\n const resolvedConfig = Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), config);\n const { locale, defaultLocale, onError } = resolvedConfig;\n if (!locale) {\n if (onError) {\n onError(createError(`\"locale\" was not configured, using \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/API.md#intlshape for more details`));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.NumberFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.DateTimeFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n return Object.assign(Object.assign({}, resolvedConfig), { formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatHTMLMessage: formatHTMLMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nexport default class IntlProvider extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.cache = createIntlCache();\n this.state = {\n cache: this.cache,\n intl: createIntl(processIntlConfig(this.props), this.cache),\n prevConfig: processIntlConfig(this.props),\n };\n }\n static getDerivedStateFromProps(props, { prevConfig, cache }) {\n const config = processIntlConfig(props);\n if (!shallowEquals(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n }\n render() {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n }\n}\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nimport { invariant } from '@formatjs/intl-utils';\nconst MINUTE = 60;\nconst HOUR = 60 * 60;\nconst DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n }\n if (absValue < HOUR) {\n return 'minute';\n }\n if (absValue < DAY) {\n return 'hour';\n }\n return 'day';\n}\nfunction getDurationInSeconds(unit) {\n switch (unit) {\n case 'second':\n return 1;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n default:\n return DAY;\n }\n}\nfunction valueToSeconds(value, unit) {\n if (!value) {\n return 0;\n }\n switch (unit) {\n case 'second':\n return value;\n case 'minute':\n return value * MINUTE;\n default:\n return value * HOUR;\n }\n}\nconst INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit = 'second') {\n return INCREMENTABLE_UNITS.includes(unit);\n}\nexport class FormattedRelativeTime extends React.PureComponent {\n constructor(props) {\n super(props);\n // Public for testing\n this._updateTimer = null;\n this.state = {\n prevUnit: this.props.unit,\n prevValue: this.props.value,\n currentValueInSeconds: canIncrement(this.props.unit)\n ? valueToSeconds(this.props.value, this.props.unit)\n : 0,\n };\n invariant(!props.updateIntervalInSeconds ||\n !!(props.updateIntervalInSeconds && canIncrement(props.unit)), 'Cannot schedule update with unit longer than hour');\n }\n scheduleNextUpdate({ updateIntervalInSeconds, unit }, { currentValueInSeconds }) {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n // If there's no interval and we cannot increment this unit, do nothing\n if (!updateIntervalInSeconds || !canIncrement(unit)) {\n return;\n }\n // Figure out the next interesting time\n const nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n const nextUnit = selectUnit(nextValueInSeconds);\n // We've reached the max auto incrementable unit, don't schedule another update\n if (nextUnit === 'day') {\n return;\n }\n const unitDuration = getDurationInSeconds(nextUnit);\n const remainder = nextValueInSeconds % unitDuration;\n const prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n const nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n const delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(() => this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n }), delayInSeconds * 1e3);\n }\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentDidUpdate() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentWillUnmount() {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.unit !== state.prevUnit || props.value !== state.prevValue) {\n return {\n prevValue: props.value,\n prevUnit: props.unit,\n currentValueInSeconds: canIncrement(props.unit)\n ? valueToSeconds(props.value, props.unit)\n : 0,\n };\n }\n return null;\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { formatRelativeTime, textComponent: Text } = intl;\n const { children, value, unit, updateIntervalInSeconds } = this.props;\n const { currentValueInSeconds } = this.state;\n let currentValue = value || 0;\n let currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n const unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n const formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, Object.assign({}, this.props));\n if (typeof children === 'function') {\n return children(formattedRelativeTime);\n }\n if (Text) {\n return React.createElement(Text, null, formattedRelativeTime);\n }\n return formattedRelativeTime;\n }));\n }\n}\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n};\nexport default FormattedRelativeTime;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport withIntl from './injectIntl';\nconst FormattedPlural = props => {\n const { value, other, children, intl: { formatPlural, textComponent: Text }, } = props;\n const pluralCategory = formatPlural(value, props);\n const formattedPlural = props[pluralCategory] || other;\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n if (Text) {\n return React.createElement(Text, null, formattedPlural);\n }\n // Work around @types/react where React.FC cannot return string\n return formattedPlural;\n};\nFormattedPlural.defaultProps = {\n type: 'cardinal',\n};\nFormattedPlural.displayName = 'FormattedPlural';\nexport default withIntl(FormattedPlural);\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\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};\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { formatMessage } from '../formatters/message';\nimport { invariantIntlContext, DEFAULT_INTL_CONFIG, createFormatters, } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage(Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), { locale: 'en' }), createFormatters(), descriptor, values);\n};\nclass FormattedMessage extends React.Component {\n shouldComponentUpdate(nextProps) {\n const _a = this.props, { values } = _a, otherProps = __rest(_a, [\"values\"]);\n const { values: nextValues } = nextProps, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatMessage = defaultFormatMessage, textComponent: Text = React.Fragment, } = intl || {};\n const { id, description, defaultMessage, values, children, tagName: Component = Text, } = this.props;\n const descriptor = { id, description, defaultMessage };\n let nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children(...nodes);\n }\n if (Component) {\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement(Component, null, ...nodes);\n }\n return nodes;\n }));\n }\n}\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.defaultProps = {\n values: {},\n};\nexport default FormattedMessage;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport FormattedMessage from './message';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nclass FormattedHTMLMessage extends FormattedMessage {\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatHTMLMessage, textComponent } = intl;\n const { id, description, defaultMessage, values: rawValues, children, } = this.props;\n let { tagName: Component } = this.props;\n // This is bc of TS3.3 doesn't recognize `defaultProps`\n if (!Component) {\n Component = textComponent || 'span';\n }\n const descriptor = { id, description, defaultMessage };\n const formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = { __html: formattedHTMLMessage };\n return React.createElement(Component, { dangerouslySetInnerHTML: html });\n }));\n }\n}\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.defaultProps = Object.assign(Object.assign({}, FormattedMessage.defaultProps), { tagName: 'span' });\nexport default FormattedHTMLMessage;\n","export function defineMessages(msgs) {\n return msgs;\n}\nimport { createFormattedComponent, createFormattedDateTimePartsComponent, } from './components/createFormattedComponent';\nexport { default as injectIntl, Provider as RawIntlProvider, Context as IntlContext, } from './components/injectIntl';\nexport { default as useIntl } from './components/useIntl';\nexport { default as IntlProvider, createIntl } from './components/provider';\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./types').CustomFormatConfig`\nexport const FormattedDate = createFormattedComponent('formatDate');\nexport const FormattedTime = createFormattedComponent('formatTime');\nexport const FormattedNumber = createFormattedComponent('formatNumber');\nexport const FormattedList = createFormattedComponent('formatList');\nexport const FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport const FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport const FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts } from './components/createFormattedComponent';\nexport { default as FormattedRelativeTime } from './components/relative';\nexport { default as FormattedPlural } from './components/plural';\nexport { default as FormattedMessage } from './components/message';\nexport { default as FormattedHTMLMessage } from './components/html-message';\nexport { createIntlCache } from './utils';\n"],"sourceRoot":""}
|