{"version":3,"sources":["../../src/utils.ts","../../src/error.ts","../../src/struct.ts","../../src/structs/utilities.ts","../../src/structs/types.ts","../node_modules/@babel/runtime/helpers/esm/toArray.js","../../src/structs/coercions.ts","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../../src/Layout.ts","../node_modules/react/jsx-runtime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../src/util/to-buffer.ts","../../node_modules/minimalistic-assert/index.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/hash.js/lib/hash/utils.js","../../node_modules/hash.js/lib/hash/common.js","../../node_modules/hash.js/lib/hash/sha/common.js","../../node_modules/hash.js/lib/hash/sha/1.js","../../node_modules/hash.js/lib/hash/sha/256.js","../../node_modules/hash.js/lib/hash/sha/224.js","../../node_modules/hash.js/lib/hash/sha/512.js","../../node_modules/hash.js/lib/hash/sha/384.js","../../node_modules/hash.js/lib/hash/sha.js","../../node_modules/hash.js/lib/hash/ripemd.js","../../node_modules/hash.js/lib/hash/hmac.js","../../node_modules/hash.js/lib/hash.js","../../node_modules/@ethersproject/logger/lib.esm/index.js","../../node_modules/@ethersproject/logger/lib.esm/_version.js","../../node_modules/@ethersproject/bytes/lib.esm/_version.js","../../node_modules/@ethersproject/bytes/lib.esm/index.js","../../node_modules/@ethersproject/sha2/lib.esm/sha2.js","../../node_modules/@ethersproject/sha2/lib.esm/_version.js","../../src/util/borsh-schema.ts","../../src/publickey.ts","../../src/account.ts","../../src/bpf-loader-deprecated.ts","../../src/layout.ts","../../src/util/shortvec-encoding.ts","../../src/message.ts","../../src/util/assert.ts","../../src/transaction.ts","../../src/sysvar.ts","../../src/util/send-and-confirm-transaction.ts","../../src/util/sleep.ts","../../src/instruction.ts","../../src/fee-calculator.ts","../../src/nonce-account.ts","../../src/system-program.ts","../../src/loader.ts","../../src/bpf-loader.ts","../../node_modules/cross-fetch/dist/browser-ponyfill.js","../../src/epoch-schedule.ts","../../src/errors.ts","../../src/util/promise-timeout.ts","../../src/connection.ts","../../src/util/url.ts","../../src/keypair.ts","../../src/ed25519-program.ts","../../src/stake-program.ts","../../src/secp256k1-program.ts","../../src/validator-info.ts","../../src/vote-account.ts","../../src/vote-program.ts","../../src/util/send-and-confirm-raw-transaction.ts","../../src/util/cluster.ts","../../src/index.ts","../node_modules/node-libs-browser/node_modules/buffer/index.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/tslib/tslib.es6.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@mui/system/esm/style.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/big.js/big.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/display.js","../node_modules/@mui/system/esm/flexbox.js","../node_modules/@mui/system/esm/grid.js","../node_modules/@mui/system/esm/positions.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/shadows.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/typography.js","../node_modules/@mui/system/esm/getThemeValue.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/styles/styled.js","../node_modules/bs58/index.js","../../../src/index.ts","../../../../packages/react-router/index.tsx","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/tweetnacl/nacl-fast.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/react-dom/index.js","../../../../src/provider.ts","../../../../src/error.ts","../../../node_modules/snake-case/node_modules/tslib/tslib.es6.js","../../../node_modules/dot-case/node_modules/tslib/tslib.es6.js","../../../node_modules/lower-case/dist.es2015/index.js","../../../node_modules/no-case/dist.es2015/index.js","../../../../src/coder/borsh/idl.ts","../../../../src/coder/borsh/instruction.ts","../../../node_modules/snake-case/dist.es2015/index.js","../../../node_modules/dot-case/dist.es2015/index.js","../../../../src/coder/common.ts","../../../../src/coder/borsh/accounts.ts","../../../../src/coder/borsh/event.ts","../../../../src/utils/features.ts","../../../../src/coder/borsh/state.ts","../../../../src/coder/borsh/index.ts","../../../node_modules/buffer-layout/lib/Layout.js","../../../../src/coder/spl-token/instruction.ts","../../../../src/coder/spl-token/state.ts","../../../../src/coder/spl-token/buffer-layout.ts","../../../../src/coder/spl-token/accounts.ts","../../../../src/coder/spl-token/events.ts","../../../../src/coder/spl-token/index.ts","../../../../src/utils/sha256.ts","../../../../src/program/common.ts","../../../../src/utils/rpc.ts","../../../../src/utils/common.ts","../../../../src/utils/pubkey.ts","../../../../src/utils/bytes/hex.ts","../../../../src/utils/bytes/utf8.ts","../../../../src/utils/bytes/bs58.ts","../../../../src/utils/bytes/base64.ts","../../../../src/utils/token.ts","../../../node_modules/cross-fetch/dist/browser-ponyfill.js","../../../../src/utils/registry.ts","../../../../src/idl.ts","../../../../src/program/context.ts","../../../../src/program/namespace/instruction.ts","../../../../src/program/namespace/rpc.ts","../../../../src/program/namespace/transaction.ts","../../../../src/program/namespace/state.ts","../../../../src/program/namespace/account.ts","../../../../src/program/event.ts","../../../../src/spl/token.ts","../../../../src/program/accounts-resolver.ts","../../../../src/program/namespace/methods.ts","../../../../src/program/index.ts","../../../../src/program/namespace/index.ts","../../../../src/program/namespace/simulate.ts","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/bn.js/lib/bn.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@civic/solana-gateway-react/dist/esm/logger/index.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/camelcase/index.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@babel/runtime/helpers/inherits.js","../../../../packages/react-router-dom/index.tsx","../node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js","../node_modules/@material-ui/core/esm/utils/ownerDocument.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js","../../src/SnackbarContext.ts","../../src/utils/constants.ts","../../src/SnackbarContent/SnackbarContent.tsx","../../src/SnackbarItem/SnackbarItem.util.ts","../../src/utils/defaultIconVariants.tsx","../../src/utils/createChainedFunction.js","../../src/utils/useEventCallback.js","../../src/SnackbarItem/Snackbar.js","../../src/SnackbarItem/SnackbarItem.tsx","../../src/SnackbarContainer.tsx","../../src/SnackbarProvider.tsx","../../src/useSnackbar.ts","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/rollup-plugin-node-polyfills/polyfills/global.js","../../node_modules/rollup-plugin-node-polyfills/polyfills/inherits.js","../../node_modules/rollup-plugin-node-polyfills/polyfills/util.js","../../node_modules/rollup-plugin-node-polyfills/polyfills/assert.js","../../node_modules/buffer-layout/lib/Layout.js","../../client/layout.js","../../client/util/send-and-confirm-transaction.js","../../client/token.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/@civic/solana-gateway-react/dist/esm/types.js","../node_modules/borsh/lib/index.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/webpack/buildin/global.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/eventemitter3/index.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@mui/system/esm/merge.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/elliptic/node_modules/bn.js/lib/bn.js","../node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/secp256k1/elliptic.js","../node_modules/js-sha3/src/sha3.js","../node_modules/react-is/index.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@mui/material/Table/Tablelvl2Context.js","../../src/types.ts","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@material-ui/core/esm/List/ListContext.js","../node_modules/js-sha256/src/sha256.js","../node_modules/minimalistic-assert/index.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/base64-js/index.js","../node_modules/assert/assert.js","../node_modules/@civic/solana-gateway-react/dist/esm/index.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useWalletHooks.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/@material-ui/core/esm/utils/ownerWindow.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/rpc-websockets/dist/index.browser.js","../node_modules/jayson/lib/client/browser/index.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/createTheme.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/process/browser.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/object-assign/index.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/inherits/inherits_browser.js","../../../src/lib/GatewayTokenData.ts","../node_modules/@civic/solana-gateway-react/dist/esm/solana/config.js","../../../../src/utils/publicKey.ts","../node_modules/@formatjs/intl/lib/index.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/lodash.mapvalues/index.js","../../src/useWallet.ts","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/@mui/material/Table/TableContext.js","../../src/useWalletDialog.ts","../../src/WalletIcon.tsx","../../src/WalletConnectButton.tsx","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","../node_modules/@material-ui/core/esm/Modal/ModalManager.js","../node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","../node_modules/@material-ui/core/esm/Modal/Modal.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/Dialog/Dialog.js","../node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/core/esm/DialogContent/DialogContent.js","../node_modules/@material-ui/core/esm/List/List.js","../node_modules/@material-ui/core/esm/Collapse/Collapse.js","../../src/WalletListItem.tsx","../../src/WalletDialog.tsx","../../src/WalletDialogButton.tsx","../../src/WalletDialogProvider.tsx","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/Popover/Popover.js","../node_modules/@material-ui/core/esm/MenuList/MenuList.js","../node_modules/@material-ui/core/esm/Menu/Menu.js","../node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js","../../src/WalletMultiButton.tsx","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/webpack/buildin/module.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/hash.js/lib/hash.js","../../../src/lib/solanaBorsh.ts","../../../src/lib/constants.ts","../node_modules/@civic/solana-gateway-react/dist/esm/gateway/GatewayContext.js","../node_modules/@civic/solana-gateway-react/dist/esm/constants.js","../node_modules/@civic/solana-gateway-react/dist/esm/config.js","../node_modules/@civic/solana-gateway-react/dist/esm/useReducer/utils.js","../node_modules/ramda/es/F.js","../node_modules/ramda/es/T.js","../node_modules/ramda/es/__.js","../node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/ramda/es/internal/_curry1.js","../node_modules/ramda/es/internal/_curry2.js","../node_modules/ramda/es/add.js","../node_modules/ramda/es/internal/_concat.js","../node_modules/ramda/es/internal/_arity.js","../node_modules/ramda/es/internal/_curryN.js","../node_modules/ramda/es/curryN.js","../node_modules/ramda/es/addIndex.js","../node_modules/ramda/es/internal/_curry3.js","../node_modules/ramda/es/adjust.js","../node_modules/ramda/es/internal/_isArray.js","../node_modules/ramda/es/internal/_isTransformer.js","../node_modules/ramda/es/internal/_dispatchable.js","../node_modules/ramda/es/internal/_reduced.js","../node_modules/ramda/es/internal/_xfBase.js","../node_modules/ramda/es/internal/_xall.js","../node_modules/ramda/es/all.js","../node_modules/ramda/es/max.js","../node_modules/ramda/es/internal/_map.js","../node_modules/ramda/es/internal/_isString.js","../node_modules/ramda/es/internal/_isArrayLike.js","../node_modules/ramda/es/internal/_xwrap.js","../node_modules/ramda/es/bind.js","../node_modules/ramda/es/internal/_reduce.js","../node_modules/ramda/es/internal/_xmap.js","../node_modules/ramda/es/internal/_has.js","../node_modules/ramda/es/internal/_isArguments.js","../node_modules/ramda/es/keys.js","../node_modules/ramda/es/map.js","../node_modules/ramda/es/internal/_isInteger.js","../node_modules/ramda/es/nth.js","../node_modules/ramda/es/paths.js","../node_modules/ramda/es/path.js","../node_modules/ramda/es/prop.js","../node_modules/ramda/es/pluck.js","../node_modules/ramda/es/reduce.js","../node_modules/ramda/es/allPass.js","../node_modules/ramda/es/always.js","../node_modules/ramda/es/and.js","../node_modules/ramda/es/internal/_xany.js","../node_modules/ramda/es/any.js","../node_modules/ramda/es/anyPass.js","../node_modules/ramda/es/ap.js","../node_modules/ramda/es/internal/_aperture.js","../node_modules/ramda/es/internal/_xaperture.js","../node_modules/ramda/es/aperture.js","../node_modules/ramda/es/append.js","../node_modules/ramda/es/apply.js","../node_modules/ramda/es/values.js","../node_modules/ramda/es/applySpec.js","../node_modules/ramda/es/applyTo.js","../node_modules/ramda/es/ascend.js","../node_modules/ramda/es/assoc.js","../node_modules/ramda/es/isNil.js","../node_modules/ramda/es/assocPath.js","../node_modules/ramda/es/nAry.js","../node_modules/ramda/es/binary.js","../node_modules/ramda/es/internal/_isFunction.js","../node_modules/ramda/es/liftN.js","../node_modules/ramda/es/lift.js","../node_modules/ramda/es/both.js","../node_modules/ramda/es/curry.js","../node_modules/ramda/es/call.js","../node_modules/ramda/es/internal/_makeFlat.js","../node_modules/ramda/es/internal/_flatCat.js","../node_modules/ramda/es/internal/_forceReduced.js","../node_modules/ramda/es/chain.js","../node_modules/ramda/es/internal/_xchain.js","../node_modules/ramda/es/clamp.js","../node_modules/ramda/es/internal/_cloneRegExp.js","../node_modules/ramda/es/type.js","../node_modules/ramda/es/internal/_clone.js","../node_modules/ramda/es/clone.js","../node_modules/ramda/es/comparator.js","../node_modules/ramda/es/not.js","../node_modules/ramda/es/complement.js","../node_modules/ramda/es/internal/_pipe.js","../node_modules/ramda/es/internal/_checkForMethod.js","../node_modules/ramda/es/slice.js","../node_modules/ramda/es/tail.js","../node_modules/ramda/es/pipe.js","../node_modules/ramda/es/reverse.js","../node_modules/ramda/es/compose.js","../node_modules/ramda/es/composeK.js","../node_modules/ramda/es/internal/_pipeP.js","../node_modules/ramda/es/pipeP.js","../node_modules/ramda/es/composeP.js","../node_modules/ramda/es/head.js","../node_modules/ramda/es/internal/_identity.js","../node_modules/ramda/es/identity.js","../node_modules/ramda/es/pipeWith.js","../node_modules/ramda/es/composeWith.js","../node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/ramda/es/internal/_includesWith.js","../node_modules/ramda/es/internal/_objectIs.js","../node_modules/ramda/es/internal/_equals.js","../node_modules/ramda/es/internal/_functionName.js","../node_modules/ramda/es/equals.js","../node_modules/ramda/es/internal/_indexOf.js","../node_modules/ramda/es/internal/_includes.js","../node_modules/ramda/es/internal/_quote.js","../node_modules/ramda/es/internal/_toISOString.js","../node_modules/ramda/es/internal/_complement.js","../node_modules/ramda/es/internal/_filter.js","../node_modules/ramda/es/internal/_isObject.js","../node_modules/ramda/es/internal/_xfilter.js","../node_modules/ramda/es/filter.js","../node_modules/ramda/es/reject.js","../node_modules/ramda/es/internal/_toString.js","../node_modules/ramda/es/toString.js","../node_modules/ramda/es/concat.js","../node_modules/ramda/es/cond.js","../node_modules/ramda/es/constructN.js","../node_modules/ramda/es/construct.js","../node_modules/ramda/es/contains.js","../node_modules/ramda/es/converge.js","../node_modules/ramda/es/internal/_xreduceBy.js","../node_modules/ramda/es/reduceBy.js","../node_modules/ramda/es/countBy.js","../node_modules/ramda/es/dec.js","../node_modules/ramda/es/defaultTo.js","../node_modules/ramda/es/descend.js","../node_modules/ramda/es/internal/_Set.js","../node_modules/ramda/es/difference.js","../node_modules/ramda/es/differenceWith.js","../node_modules/ramda/es/dissoc.js","../node_modules/ramda/es/remove.js","../node_modules/ramda/es/update.js","../node_modules/ramda/es/dissocPath.js","../node_modules/ramda/es/divide.js","../node_modules/ramda/es/internal/_xdrop.js","../node_modules/ramda/es/drop.js","../node_modules/ramda/es/internal/_xtake.js","../node_modules/ramda/es/take.js","../node_modules/ramda/es/internal/_dropLast.js","../node_modules/ramda/es/internal/_xdropLast.js","../node_modules/ramda/es/dropLast.js","../node_modules/ramda/es/internal/_dropLastWhile.js","../node_modules/ramda/es/internal/_xdropLastWhile.js","../node_modules/ramda/es/dropLastWhile.js","../node_modules/ramda/es/internal/_xdropRepeatsWith.js","../node_modules/ramda/es/last.js","../node_modules/ramda/es/dropRepeatsWith.js","../node_modules/ramda/es/dropRepeats.js","../node_modules/ramda/es/internal/_xdropWhile.js","../node_modules/ramda/es/dropWhile.js","../node_modules/ramda/es/or.js","../node_modules/ramda/es/either.js","../node_modules/ramda/es/empty.js","../node_modules/ramda/es/takeLast.js","../node_modules/ramda/es/endsWith.js","../node_modules/ramda/es/eqBy.js","../node_modules/ramda/es/eqProps.js","../node_modules/ramda/es/evolve.js","../node_modules/ramda/es/internal/_xfind.js","../node_modules/ramda/es/find.js","../node_modules/ramda/es/internal/_xfindIndex.js","../node_modules/ramda/es/findIndex.js","../node_modules/ramda/es/internal/_xfindLast.js","../node_modules/ramda/es/findLast.js","../node_modules/ramda/es/internal/_xfindLastIndex.js","../node_modules/ramda/es/findLastIndex.js","../node_modules/ramda/es/flatten.js","../node_modules/ramda/es/flip.js","../node_modules/ramda/es/forEach.js","../node_modules/ramda/es/forEachObjIndexed.js","../node_modules/ramda/es/fromPairs.js","../node_modules/ramda/es/groupBy.js","../node_modules/ramda/es/groupWith.js","../node_modules/ramda/es/gt.js","../node_modules/ramda/es/gte.js","../node_modules/ramda/es/hasPath.js","../node_modules/ramda/es/has.js","../node_modules/ramda/es/hasIn.js","../node_modules/ramda/es/identical.js","../node_modules/ramda/es/ifElse.js","../node_modules/ramda/es/inc.js","../node_modules/ramda/es/includes.js","../node_modules/ramda/es/indexBy.js","../node_modules/ramda/es/indexOf.js","../node_modules/ramda/es/init.js","../node_modules/ramda/es/innerJoin.js","../node_modules/ramda/es/insert.js","../node_modules/ramda/es/insertAll.js","../node_modules/ramda/es/uniqBy.js","../node_modules/ramda/es/uniq.js","../node_modules/ramda/es/intersection.js","../node_modules/ramda/es/intersperse.js","../node_modules/ramda/es/internal/_objectAssign.js","../node_modules/ramda/es/objOf.js","../node_modules/ramda/es/internal/_stepCat.js","../node_modules/ramda/es/into.js","../node_modules/ramda/es/invert.js","../node_modules/ramda/es/invertObj.js","../node_modules/ramda/es/invoker.js","../node_modules/ramda/es/is.js","../node_modules/ramda/es/isEmpty.js","../node_modules/ramda/es/join.js","../node_modules/ramda/es/juxt.js","../node_modules/ramda/es/keysIn.js","../node_modules/ramda/es/lastIndexOf.js","../node_modules/ramda/es/internal/_isNumber.js","../node_modules/ramda/es/length.js","../node_modules/ramda/es/lens.js","../node_modules/ramda/es/lensIndex.js","../node_modules/ramda/es/lensPath.js","../node_modules/ramda/es/lensProp.js","../node_modules/ramda/es/lt.js","../node_modules/ramda/es/lte.js","../node_modules/ramda/es/mapAccum.js","../node_modules/ramda/es/mapAccumRight.js","../node_modules/ramda/es/mapObjIndexed.js","../node_modules/ramda/es/match.js","../node_modules/ramda/es/mathMod.js","../node_modules/ramda/es/maxBy.js","../node_modules/ramda/es/sum.js","../node_modules/ramda/es/mean.js","../node_modules/ramda/es/median.js","../node_modules/ramda/es/memoizeWith.js","../node_modules/ramda/es/merge.js","../node_modules/ramda/es/mergeAll.js","../node_modules/ramda/es/mergeWithKey.js","../node_modules/ramda/es/mergeDeepWithKey.js","../node_modules/ramda/es/mergeDeepLeft.js","../node_modules/ramda/es/mergeDeepRight.js","../node_modules/ramda/es/mergeDeepWith.js","../node_modules/ramda/es/mergeLeft.js","../node_modules/ramda/es/mergeRight.js","../node_modules/ramda/es/mergeWith.js","../node_modules/ramda/es/min.js","../node_modules/ramda/es/minBy.js","../node_modules/ramda/es/modulo.js","../node_modules/ramda/es/move.js","../node_modules/ramda/es/multiply.js","../node_modules/ramda/es/negate.js","../node_modules/ramda/es/none.js","../node_modules/ramda/es/nthArg.js","../node_modules/ramda/es/o.js","../node_modules/ramda/es/internal/_of.js","../node_modules/ramda/es/of.js","../node_modules/ramda/es/omit.js","../node_modules/ramda/es/once.js","../node_modules/ramda/es/internal/_assertPromise.js","../node_modules/ramda/es/otherwise.js","../node_modules/ramda/es/over.js","../node_modules/ramda/es/pair.js","../node_modules/ramda/es/internal/_createPartialApplicator.js","../node_modules/ramda/es/partial.js","../node_modules/ramda/es/partialRight.js","../node_modules/ramda/es/partition.js","../node_modules/ramda/es/pathEq.js","../node_modules/ramda/es/pathOr.js","../node_modules/ramda/es/pathSatisfies.js","../node_modules/ramda/es/pick.js","../node_modules/ramda/es/pickAll.js","../node_modules/ramda/es/pickBy.js","../node_modules/ramda/es/pipeK.js","../node_modules/ramda/es/prepend.js","../node_modules/ramda/es/product.js","../node_modules/ramda/es/useWith.js","../node_modules/ramda/es/project.js","../node_modules/ramda/es/propEq.js","../node_modules/ramda/es/propIs.js","../node_modules/ramda/es/propOr.js","../node_modules/ramda/es/propSatisfies.js","../node_modules/ramda/es/props.js","../node_modules/ramda/es/range.js","../node_modules/ramda/es/reduceRight.js","../node_modules/ramda/es/reduceWhile.js","../node_modules/ramda/es/reduced.js","../node_modules/ramda/es/times.js","../node_modules/ramda/es/repeat.js","../node_modules/ramda/es/replace.js","../node_modules/ramda/es/scan.js","../node_modules/ramda/es/sequence.js","../node_modules/ramda/es/set.js","../node_modules/ramda/es/sort.js","../node_modules/ramda/es/sortBy.js","../node_modules/ramda/es/sortWith.js","../node_modules/ramda/es/split.js","../node_modules/ramda/es/splitAt.js","../node_modules/ramda/es/splitEvery.js","../node_modules/ramda/es/splitWhen.js","../node_modules/ramda/es/startsWith.js","../node_modules/ramda/es/subtract.js","../node_modules/ramda/es/symmetricDifference.js","../node_modules/ramda/es/symmetricDifferenceWith.js","../node_modules/ramda/es/takeLastWhile.js","../node_modules/ramda/es/internal/_xtakeWhile.js","../node_modules/ramda/es/takeWhile.js","../node_modules/ramda/es/internal/_xtap.js","../node_modules/ramda/es/tap.js","../node_modules/ramda/es/test.js","../node_modules/ramda/es/internal/_isRegExp.js","../node_modules/ramda/es/andThen.js","../node_modules/ramda/es/toLower.js","../node_modules/ramda/es/toPairs.js","../node_modules/ramda/es/toPairsIn.js","../node_modules/ramda/es/toUpper.js","../node_modules/ramda/es/transduce.js","../node_modules/ramda/es/transpose.js","../node_modules/ramda/es/traverse.js","../node_modules/ramda/es/trim.js","../node_modules/ramda/es/tryCatch.js","../node_modules/ramda/es/unapply.js","../node_modules/ramda/es/unary.js","../node_modules/ramda/es/uncurryN.js","../node_modules/ramda/es/unfold.js","../node_modules/ramda/es/union.js","../node_modules/ramda/es/uniqWith.js","../node_modules/ramda/es/unionWith.js","../node_modules/ramda/es/unless.js","../node_modules/ramda/es/unnest.js","../node_modules/ramda/es/until.js","../node_modules/ramda/es/valuesIn.js","../node_modules/ramda/es/view.js","../node_modules/ramda/es/when.js","../node_modules/ramda/es/where.js","../node_modules/ramda/es/whereEq.js","../node_modules/ramda/es/without.js","../node_modules/ramda/es/xor.js","../node_modules/ramda/es/xprod.js","../node_modules/ramda/es/zip.js","../node_modules/ramda/es/zipObj.js","../node_modules/ramda/es/zipWith.js","../node_modules/ramda/es/thunkify.js","../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/millify/dist/millify.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/utils/esm/setRef.js","../../../../src/utils/simulateTransactionWithCommitment.ts","../../../src/broadcaster.ts","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../../../src/utils/misc.ts","../../../../src/utils/printTXTable.ts","../../../../src/transaction/TransactionEnvelope.ts","../../../../src/transaction/txSizer.ts","../../../src/provider.ts","../../../../src/transaction/programErr.ts","../../../../src/transaction/parseTransactionLogs.ts","../../../../src/transaction/PendingTransaction.ts","../../../../src/transaction/TransactionReceipt.ts","../../../../src/utils/provider.ts","../../../../src/utils/programs.ts","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/styled-components/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/brorand/index.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/buffer-layout/lib/Layout.js","../../../../src/utils/instructions.ts","../../../src/lib/util.ts","../../../src/types/index.ts","../node_modules/@civic/solana-gateway-react/dist/esm/utils/version.js","../node_modules/@civic/solana-gateway-react/dist/esm/logger/provider.logger.js","../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../../src/utils/interleave.js","../../src/utils/isPlainObject.js","../../src/utils/empties.js","../../src/utils/isFunction.js","../../src/utils/getComponentName.js","../../src/utils/isStyledComponent.js","../../src/constants.js","../../src/utils/error.js","../../src/sheet/GroupedTag.js","../../src/sheet/GroupIDAllocator.js","../../src/sheet/Rehydration.js","../../src/utils/nonce.js","../../src/sheet/dom.js","../../src/sheet/Tag.js","../../src/sheet/Sheet.js","../../src/utils/generateAlphabeticName.js","../../src/utils/hash.js","../../src/utils/isStaticRules.js","../../src/models/ComponentStyle.js","../../src/utils/stylis.js","../../src/utils/stylisPluginInsertRule.js","../../src/models/StyleSheetManager.js","../../src/models/Keyframes.js","../../src/utils/hyphenateStyleName.js","../../src/utils/flatten.js","../../src/utils/isStatelessFunction.js","../../src/utils/addUnitIfNeeded.js","../../src/constructors/css.js","../../src/utils/checkDynamicCreation.js","../../src/utils/determineTheme.js","../../src/utils/escape.js","../../src/utils/generateComponentId.js","../../src/utils/isTag.js","../../src/utils/mixinDeep.js","../../src/models/ThemeProvider.js","../../src/models/StyledComponent.js","../../src/utils/generateDisplayName.js","../../src/utils/joinStrings.js","../../src/utils/domElements.js","../../src/constructors/styled.js","../../src/constructors/constructWithOptions.js","../../src/models/GlobalStyle.js","../../src/constructors/createGlobalStyle.js","../../src/constructors/keyframes.js","../../src/models/ServerStyleSheet.js","../../src/hoc/withTheme.js","../../src/hooks/useTheme.js","../../src/secretInternals.js","../../src/base.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useGatekeeperRecord.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useCivicPass.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useChain.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useRefresh.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IdentityButton.utils.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/chainImplementation.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v1.js","../node_modules/uuid/dist/esm-browser/parse.js","../node_modules/uuid/dist/esm-browser/v35.js","../node_modules/uuid/dist/esm-browser/md5.js","../node_modules/uuid/dist/esm-browser/v3.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/uuid/dist/esm-browser/sha1.js","../node_modules/uuid/dist/esm-browser/v5.js","../node_modules/uuid/dist/esm-browser/nil.js","../node_modules/uuid/dist/esm-browser/version.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/utils/requirePropFactory.js","../node_modules/@material-ui/core/esm/utils/unsupportedProp.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/pako/dist/pako.esm.mjs","../node_modules/flatted/esm/index.js","../node_modules/lodash.camelcase/index.js","../../../../../src/program/namespace/instruction.ts","../node_modules/promise-retry/index.js","../node_modules/fraction.js/fraction.js","../../src/useConnection.tsx","../node_modules/@material-ui/icons/Close.js","../node_modules/@material-ui/icons/ExpandLess.js","../node_modules/@material-ui/icons/ExpandMore.js","../node_modules/@material-ui/icons/FileCopy.js","../node_modules/@material-ui/icons/SwapHoriz.js","../node_modules/@material-ui/icons/LinkOff.js","../node_modules/shallowequal/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@material-ui/icons/Launch.js","../../src/adapter.ts","../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/react/cjs/react.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/base-x/src/index.js","../node_modules/safe-buffer/index.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/text-encoding-utf-8/lib/encoding.lib.mjs","../node_modules/rpc-websockets/dist/lib/client/websocket.browser.js","../node_modules/rpc-websockets/dist/lib/client.js","../node_modules/circular-json/build/circular-json.node.js","../node_modules/jayson/lib/generateRequest.js","../node_modules/secp256k1/lib/index.js","../node_modules/secp256k1/lib/elliptic.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/util/util.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../../src/error.ts","../node_modules/err-code/index.js","../node_modules/retry/index.js","../node_modules/retry/lib/retry.js","../node_modules/retry/lib/retry_operation.js","../../../src/lib/instruction.ts","../../../src/lib/AssignablePublicKey.ts","../node_modules/async-retry/lib/index.js","../node_modules/async-retry/node_modules/retry/index.js","../node_modules/async-retry/node_modules/retry/lib/retry.js","../node_modules/async-retry/node_modules/retry/lib/retry_operation.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.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/react-is/cjs/react-is.production.min.js","../node_modules/@civic/solana-gateway-react/dist/esm/logger/local.logger.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/index.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IdentityButton.js","../../node_modules/iframe-resizer/js/iframeResizer.js","../../node_modules/warning/warning.js","../../src/index.jsx","../../src/filter-iframe-attribs.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/@civic/solana-gateway-react/dist/esm/wrapper/Wrapper.js","../node_modules/@civic/solana-gateway-react/dist/esm/wrapper/SVGClose.js","../node_modules/@civic/solana-gateway-react/dist/esm/wrapper/SVGLoading.js","../node_modules/@civic/solana-gateway-react/dist/esm/utils/gatekeeperClient.js","../node_modules/@civic/solana-gateway-react/dist/esm/useReducer/index.js","../node_modules/@civic/solana-gateway-react/dist/esm/useReducer/reducer.js","../node_modules/@civic/solana-gateway-react/dist/esm/utils/tokenUtils.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useUserInteraction.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useOrchestration.js","../node_modules/@civic/solana-gateway-react/dist/esm/actionCreator/index.js","../node_modules/@civic/solana-gateway-react/dist/esm/actionCreator/gatewayToken.actionCreator.js","../node_modules/@civic/solana-gateway-react/dist/esm/actionCreator/utils.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/usePOWO.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useGatekeeper.js","../node_modules/@civic/solana-gateway-react/dist/esm/networkConfig.js","../node_modules/@civic/solana-gateway-react/dist/esm/useHooks/useCivicPassEventListener.js","../node_modules/@civic/solana-gateway-react/dist/esm/utils/remoteSign.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IconLogo.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IconError.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IconLoading.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IconSuccess.js","../node_modules/@civic/solana-gateway-react/dist/esm/button/IconWarning.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/badge/index.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/badge/Badge.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/badge/constants.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/connection.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/badge/Badge.svg.js","../node_modules/@civic/solana-gateway-react/dist/esm/solana/index.js","../../node_modules/regenerator-runtime/runtime.js","../../src/utilities.ts","../node_modules/@civic/solana-gateway-react/dist/esm/solana/types.js","../node_modules/millify/dist/options.js","../node_modules/millify/dist/utils.js","../node_modules/@material-ui/core/esm/ListItem/ListItem.js","../node_modules/@material-ui/core/esm/Typography/Typography.js","../node_modules/@mui/utils/esm/ownerWindow.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/utils/esm/debounce.js","../node_modules/is-in-browser/dist/module.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@mui/base/generateUtilityClass/ClassNameGenerator.js","../node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js","../../src/useAnchorWallet.ts","../node_modules/react-intl/lib/src/components/useIntl.js","../node_modules/@material-ui/core/esm/Button/Button.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/@material-ui/core/esm/styles/makeStyles.js","../node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/base/composeClasses/composeClasses.js","../node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@material-ui/core/esm/Link/Link.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../../src/poll.ts","../../src/signer.ts","../node_modules/react-intl/lib/src/components/provider.js","../../src/ConnectionProvider.tsx","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/base/ModalUnstyled/ModalManager.js","../node_modules/@mui/base/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js","../node_modules/@mui/base/BackdropUnstyled/backdropUnstyledClasses.js","../node_modules/@mui/base/BackdropUnstyled/BackdropUnstyled.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../../src/sollet.ts","../../src/WalletProvider.tsx","../../src/useLocalStorage.ts","../../src/phantom.ts","../../src/solflare.ts","../../src/mathwallet.ts","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/TableRow/tableRowClasses.js","../node_modules/@mui/material/TableRow/TableRow.js","../node_modules/@mui/material/TableCell/tableCellClasses.js","../node_modules/@mui/material/TableCell/TableCell.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/Table/tableClasses.js","../node_modules/@mui/material/Table/Table.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.js","../node_modules/@mui/material/TableBody/tableBodyClasses.js","../node_modules/@mui/material/TableBody/TableBody.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js"],"names":["toFailures","run","StructError","constructor","failure","failures","rest","path","msg","Object","cached","TypeError","isObject","x","print","value","JSON","shiftIterator","input","done","undefined","toFailure","result","context","struct","message","branch","type","refinement","key","Symbol","r","options","coerce","mask","ctx","Array","valid","ts","v","s","k","t","Struct","props","coercer","entries","this","validator","refiner","assert","create","is","validate","tuples","tuple","error","f","define","name","schema","any","array","Element","i","boolean","instance","Class","literal","constant","description","never","nullable","number","isNaN","optional","record","Key","Value","string","Elements","Never","length","Math","keys","union","Structs","arr","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","unknown","condition","module","exports","require","Layout","prototype","makeDestinationObject","ExternalLayout","isCount","GreedyCount","layout","offset","_this","IntBE","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","_extends","assign","target","source","hasOwnProperty","call","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","Constructor","protoProps","staticProps","_classCallCheck","toBuffer","Buffer","val","Error","equal","l","inherits_browserModule","ctor","superCtor","super_","TempCtor","require$$0","inherits","require$$1","isSurrogatePair","charCodeAt","htonl","w","zero2","word","zero8","enc","isArray","slice","res","replace","push","parseInt","p","c","toString","endian","start","end","len","m","b","a","d","e","buf","pos","ah","al","bh","lo","hi","bl","ch","cl","dh","dl","carry","eh","el","num","utils","BlockHash","pending","pendingTotal","blockSize","outSize","hmacStrength","padLength","_delta8","_delta32","update","toArray","concat","join32","_update","digest","_pad","_digest","bytes","rotr32","ch32","y","z","maj32","p32","common","shaCommon","require$$2","rotl32","sum32","sum32_5","ft_1","sha1_K","SHA1","h","W","toHex32","split32","require$$3","sum32_4","s0_256","s1_256","g0_256","g1_256","sha256_K","SHA256","g","T1","T2","SHA224","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","SHA512","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","fh","fl","gh","gl","hh","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","SHA384","require$$4","sum32_3","RIPEMD160","j","K","Kh","A","B","C","D","E","Ah","Bh","Ch","Dh","Eh","T","rh","sh","Hmac","hash","Hash","inner","outer","_init","sha","ripemd","hmac","sha1","sha256","sha224","sha384","sha512","ripemd160","_permanentCensorErrors","_censorErrors","LogLevels","debug","warning","off","_logLevel","_globalLogger","LogLevel","ErrorCode","_normalizeError","missing","forEach","form","normalize","join","String","fromCharCode","_checkNormalize","HEX","Logger","version","logLevel","level","toLowerCase","throwArgumentError","console","log","_log","levels","DEBUG","INFO","WARNING","code","params","makeError","errors","UNKNOWN_ERROR","messageDetails","Uint8Array","hex","stringify","reason","throwError","INVALID_ARGUMENT","argument","UNSUPPORTED_OPERATION","operation","NUMERIC_FAULT","fault","count","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","kind","MISSING_NEW","censorship","permanent","globalLogger","warn","logger","addSlice","isInteger","arrayify","checkSafeUint53","unshift","allowMissingPrefix","substring","toHexString","isHexable","match","isHexString","hexPad","isBytes","data","encode","serialize","SOLANA_SCHEMA","decode","deserialize","decodeUnchecked","deserializeUnchecked","enum","Map","MAX_SEED_LENGTH","_bn","isPublicKeyData","decoded","bs58","equals","eq","publicKey","toBase58","toJSON","toBytes","toArrayLike","zeroPad","createWithSeed","buffer","fromPublicKey","programId","PublicKey","createProgramAddress","seeds","seed","is_on_curve","publicKeyBytes","findProgramAddress","nonce","seedsWithNonce","address","isOnCurve","default","fields","naclLowLevel","nacl","chk","den","den2","den4","den6","neq25519","gf1","I","_keypair","secretKey","BPF_LOADER_DEPRECATED_PROGRAM_ID","property","BufferLayout","rustString","rsl","_decode","_encode","chars","str","decodeLength","size","elem","encodeLength","rem_len","header","accountKeys","recentBlockhash","instructions","indexToProgramIds","account","ix","isAccountSigner","index","isAccountWritable","numRequiredSignatures","isProgramId","has","programIds","nonProgramIds","filter","numKeys","keyCount","shortvec","map","instruction","programIdIndex","keyIndicesCount","accounts","dataCount","keyIndices","dataLength","instructionCount","instructionBuffer","instructionBufferLength","instructionLayout","signDataLayout","transaction","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","signData","from","byteArray","accountCount","dataSlice","Message","DEFAULT_SIGNATURE","PACKET_DATA_SIZE","opts","signatures","feePayer","nonceInfo","signature","add","items","item","TransactionInstruction","compileMessage","accountMetas","accountMeta","pubkey","isSigner","isWritable","pubkeySorting","checkSigner","checkWritable","uniqueMetas","pubkeyString","uniqueIndex","feePayerIndex","payerMeta","signedKeys","unsignedKeys","meta","invariant","keyIndex","_compile","every","pair","serializeMessage","setSigners","signers","seen","sign","uniqueSigners","signer","partialSign","_partialSign","addSignature","_addSignature","findIndex","sigpair","verifySignatures","_verifySignatures","requireAllSignatures","_serialize","signatureCount","transactionLength","wireTransaction","keyObj","Transaction","populate","sigPubkeyPair","SYSVAR_CLOCK_PUBKEY","SYSVAR_EPOCH_SCHEDULE_PUBKEY","SYSVAR_INSTRUCTIONS_PUBKEY","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","SYSVAR_REWARDS_PUBKEY","SYSVAR_SLOT_HASHES_PUBKEY","SYSVAR_SLOT_HISTORY_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","sendOptions","skipPreflight","preflightCommitment","maxRetries","connection","status","sleep","ms","setTimeout","encodeData","allocLength","alloc","layoutFields","decodeData","FeeCalculatorLayout","NonceAccountLayout","NONCE_ACCOUNT_LENGTH","span","authorizedPubkey","feeCalculator","fromAccountData","nonceAccount","NonceAccount","decodeInstructionType","typeIndex","instructionTypeLayout","decodeCreateAccount","SYSTEM_INSTRUCTION_LAYOUTS","fromPubkey","newAccountPubkey","lamports","space","decodeTransfer","toPubkey","decodeTransferWithSeed","basePubkey","decodeAllocate","accountPubkey","decodeAllocateWithSeed","decodeAssign","decodeAssignWithSeed","decodeCreateWithSeed","decodeNonceInitialize","authorized","noncePubkey","decodeNonceAdvance","decodeNonceWithdraw","decodeNonceAuthorize","newAuthorizedPubkey","checkProgramId","SystemProgram","checkKeyLength","Create","Assign","Transfer","CreateWithSeed","AdvanceNonceAccount","WithdrawNonceAccount","InitializeNonceAccount","AuthorizeNonceAccount","Allocate","AllocateWithSeed","AssignWithSeed","TransferWithSeed","createAccount","transfer","base","createAccountWithSeed","createNonceAccount","initParams","nonceInitialize","instructionData","nonceAdvance","nonceWithdraw","nonceAuthorize","allocate","CHUNK_SIZE","getMinNumSignatures","Loader","load","balanceNeeded","program","programInfo","payer","sendAndConfirmTransaction","commitment","dataLayout","chunkSize","transactions","BPF_LOADER_PROGRAM_ID","global","__self__","F","fetch","DOMException","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","normalizeName","test","normalizeValue","iteratorFor","iterator","next","shift","Headers","headers","append","getOwnPropertyNames","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","view","byteLength","set","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","rejected","arrayBuffer","text","readAsText","readBlobAsText","readArrayBufferAsText","formData","json","parse","oldValue","callback","thisArg","values","methods","Request","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","trim","split","decodeURIComponent","parseHeaders","rawHeaders","line","parts","Response","bodyInit","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","stack","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","ponyfill","trailingZeros","n","slotsPerEpoch","leaderScheduleSlotOffset","warmup","firstNormalEpoch","firstNormalSlot","getEpoch","getEpochAndSlotIndex","slot","epoch","getSlotsInEpoch","normalSlotIndex","normalEpochIndex","getFirstSlotInEpoch","getLastSlotInEpoch","logs","promiseTimeout","timeoutPromise","timeoutId","clearTimeout","PublicKeyFromString","RawAccountDataResult","BufferFromRawAccountData","BLOCKHASH_CACHE_TIMEOUT_MS","createRpcResult","pick","jsonrpc","id","UnknownRpcResult","jsonRpcResult","jsonRpcResultAndContext","notificationResultAndContext","GetInflationGovernorResult","foundation","foundationTerm","initial","taper","terminal","GetInflationRewardResult","effectiveSlot","amount","postBalance","GetEpochInfoResult","slotIndex","slotsInEpoch","absoluteSlot","blockHeight","transactionCount","GetEpochScheduleResult","GetLeaderScheduleResult","TransactionErrorResult","SignatureStatusResult","SignatureReceivedResult","VersionResult","SimulatedTransactionResponseStruct","executable","owner","rentEpoch","unitsConsumed","GetInflationGovernorRpcResult","GetEpochInfoRpcResult","GetEpochScheduleRpcResult","GetLeaderScheduleRpcResult","SlotRpcResult","GetSupplyRpcResult","total","circulating","nonCirculating","nonCirculatingAccounts","TokenAmountResult","uiAmount","decimals","uiAmountString","GetTokenLargestAccountsResult","GetTokenAccountsByOwner","ParsedAccountDataResult","parsed","GetParsedTokenAccountsByOwner","GetLargestAccountsRpcResult","AccountInfoResult","KeyedAccountInfoResult","ParsedOrRawAccountData","ParsedAccountInfoResult","KeyedParsedAccountInfoResult","StakeActivationResult","state","active","inactive","GetConfirmedSignaturesForAddress2RpcResult","memo","blockTime","GetSignaturesForAddressRpcResult","AccountNotificationResult","subscription","ProgramAccountInfoResult","ProgramAccountNotificationResult","SlotInfoResult","parent","root","SlotNotificationResult","SlotUpdateResult","timestamp","stats","numTransactionEntries","numSuccessfulTransactions","numFailedTransactions","maxTransactionsPerEntry","SlotUpdateNotificationResult","SignatureNotificationResult","RootNotificationResult","ContactInfoResult","gossip","tpu","rpc","VoteAccountInfoResult","votePubkey","nodePubkey","activatedStake","epochVoteAccount","epochCredits","commission","lastVote","rootSlot","GetVoteAccounts","current","delinquent","ConfirmationStatus","SignatureStatusResponse","confirmations","confirmationStatus","GetSignatureStatusesRpcResult","GetMinimumBalanceForRentExemptionRpcResult","ConfirmedTransactionResult","ParsedInstructionResult","RawInstructionResult","InstructionResult","UnknownInstructionResult","ParsedOrRawInstruction","ParsedConfirmedTransactionResult","TokenBalanceResult","accountIndex","mint","uiTokenAmount","ConfirmedTransactionMetaResult","fee","innerInstructions","preBalances","postBalances","logMessages","preTokenBalances","postTokenBalances","ParsedConfirmedTransactionMetaResult","GetBlockRpcResult","blockhash","previousBlockhash","parentSlot","rewards","rewardType","GetConfirmedBlockRpcResult","GetBlockSignaturesRpcResult","GetTransactionRpcResult","GetParsedTransactionRpcResult","GetRecentBlockhashAndContextRpcResult","lamportsPerSignature","GetLatestBlockhashRpcResult","lastValidBlockHeight","PerfSampleResult","numTransactions","numSlots","samplePeriodSecs","GetRecentPerformanceSamplesRpcResult","GetFeeCalculatorRpcResult","RequestAirdropRpcResult","SendTransactionRpcResult","LogsResult","LogsNotificationResult","_commitment","_confirmTransactionInitialTimeout","_rpcEndpoint","_rpcWsEndpoint","_rpcClient","_rpcRequest","_rpcBatchRequest","_rpcWebSocket","_rpcWebSocketConnected","_rpcWebSocketHeartbeat","_rpcWebSocketIdleTimeout","_disableBlockhashCaching","_pollingBlockhash","_blockhashInfo","lastFetch","transactionSignatures","simulatedSignatures","_accountChangeSubscriptionCounter","_accountChangeSubscriptions","_programAccountChangeSubscriptionCounter","_programAccountChangeSubscriptions","_rootSubscriptionCounter","_rootSubscriptions","_signatureSubscriptionCounter","_signatureSubscriptions","_slotSubscriptionCounter","_slotSubscriptions","_logsSubscriptionCounter","_logsSubscriptions","_slotUpdateSubscriptionCounter","_slotUpdateSubscriptions","commitmentOrConfig","wsEndpoint","httpHeaders","fetchMiddleware","disableRetryOnRateLimit","endpoint","URL","useHttps","Number","makeWebsocketUrl","fetchWithMiddleware","modifiedFetchArgs","clientBrowser","agent","too_many_requests_retries","waitTime","createRpcClient","client","requests","batch","createRpcBatchRequest","autoconnect","max_reconnects","Infinity","getBalanceAndContext","unsafeRes","getBalance","getBlockTime","getMinimumLedgerSlot","getFirstAvailableBlock","getSupply","configArg","config","getTokenSupply","tokenMintAddress","getTokenAccountBalance","tokenAddress","getTokenAccountsByOwner","_args","ownerAddress","getParsedTokenAccountsByOwner","getLargestAccounts","getTokenLargestAccounts","mintAddress","getAccountInfoAndContext","getParsedAccountInfo","getAccountInfo","getMultipleAccountsInfo","publicKeys","encoding","configOrCommitment","getStakeActivation","getProgramAccounts","extra","getParsedProgramAccounts","confirmTransaction","decodedSignature","Date","subscriptionCommitment","confirmPromise","subscriptionId","timeoutMs","duration","getClusterNodes","getVoteAccounts","getSlot","getSlotLeader","getSlotLeaders","limit","getSignatureStatus","getSignatureStatuses","getTransactionCount","getTotalSupply","excludeNonCirculatingAccountsList","getInflationGovernor","getInflationReward","addresses","getEpochInfo","getEpochSchedule","epochSchedule","getLeaderSchedule","getMinimumBalanceForRentExemption","getRecentBlockhashAndContext","getRecentPerformanceSamples","getFeeCalculatorForBlockhash","getFeeForMessage","wireMessage","getRecentBlockhash","getLatestBlockhash","getLatestBlockhashAndContext","getVersion","getGenesisHash","getBlock","getTransaction","getParsedTransaction","getParsedTransactions","methodName","getConfirmedBlock","block","getBlocks","endSlot","getBlockSignatures","transactionDetails","getConfirmedBlockSignatures","getConfirmedTransaction","getParsedConfirmedTransaction","getParsedConfirmedTransactions","getConfirmedSignaturesForAddress","firstAvailableBlock","startSlot","highestConfirmedRoot","confirmedSignatureInfo","getConfirmedSignaturesForAddress2","getSignaturesForAddress","getNonceAndContext","accountInfo","getNonce","requestAirdrop","to","_recentBlockhash","timeSinceFetch","expired","_pollNewBlockhash","startTime","MS_PER_SLOT","simulateTransaction","transactionOrMessage","disableCache","encodedTransaction","logTrace","traceIndent","sendTransaction","sendRawTransaction","sendEncodedTransaction","_wsOnOpen","setInterval","_wsOnError","_wsOnClose","clearInterval","_subscribe","sub","_unsubscribe","unsubscribeId","_resetSubscriptions","_updateSubscriptions","programKeys","slotKeys","slotUpdateKeys","signatureKeys","rootKeys","logsKeys","filters","mentions","_wsOnAccountNotification","onAccountChange","removeAccountChangeListener","subInfo","_wsOnProgramAccountNotification","accountId","onProgramAccountChange","removeProgramAccountChangeListener","onLogs","removeOnLogsListener","_wsOnLogsNotification","_wsOnSlotNotification","onSlotChange","removeSlotChangeListener","_wsOnSlotUpdatesNotification","onSlotUpdate","removeSlotUpdateListener","_buildArgs","override","_buildArgsAtLeastConfirmed","_wsOnSignatureNotification","onSignature","notification","onSignatureWithOptions","removeSignatureListener","_wsOnRootNotification","onRootChange","removeRootChangeListener","generate","Keypair","fromSecretKey","keypair","encoder","fromSeed","ED25519_INSTRUCTION_LAYOUT","createInstructionWithPublicKey","instructionIndex","publicKeyOffset","signatureOffset","messageDataOffset","numSignatures","padding","signatureInstructionIndex","publicKeyInstructionIndex","messageDataSize","messageInstructionIndex","Ed25519Program","createInstructionWithPrivateKey","privateKey","STAKE_CONFIG_ID","staker","withdrawer","unixTimestamp","custodian","Lockup","decodeInitialize","STAKE_INSTRUCTION_LAYOUTS","lockup","stakePubkey","decodeDelegate","decodeAuthorize","stakeAuthorizationType","o","decodeAuthorizeWithSeed","authorityOwner","authorityBase","authoritySeed","decodeSplit","splitStakePubkey","decodeMerge","sourceStakePubKey","decodeWithdraw","decodeDeactivate","StakeProgram","Initialize","Authorize","Delegate","Split","Withdraw","Deactivate","Merge","AuthorizeWithSeed","StakeAuthorizationLayout","Staker","Withdrawer","initialize","delegate","authorize","custodianPubkey","newAuthorized","authorizeWithSeed","merge","withdraw","deactivate","ecdsaSign","SECP256K1_INSTRUCTION_LAYOUT","publicKeyToEthAddress","sha3","Secp256k1Program","ethAddress","recoveryId","createInstructionWithEthAddress","rawAddress","ethAddressOffset","ethAddressInstructionIndex","pkey","publicKeyCreate","messageHash","recid","VALIDATOR_INFO_KEY","InfoString","website","details","keybaseUsername","fromConfigData","configKeys","rawInfo","assertType","ValidatorInfo","VOTE_PROGRAM_ID","VoteAccountLayout","authorizedWithdrawer","votes","authorizedVoters","priorVoters","lastTimestamp","va","VoteAccount","getPriorVoters","parseAuthorizedVoter","authorizedVoter","parsePriorVoters","targetEpoch","epochOfLastAuthorizedSwitch","isEmpty","idx","decodeInitializeAccount","voteInit","VOTE_INSTRUCTION_LAYOUTS","VoteInit","voteAuthorizationType","authorizedWithdrawerPubkey","VoteProgram","InitializeAccount","VoteAuthorizationLayout","Voter","initializeAccount","http","devnet","testnet","https","clusterApiUrl","cluster","tls","LAMPORTS_PER_SOL","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","__proto__","encodingOrOffset","allocUnsafe","byteOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","write","fromString","isBuffer","checked","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","compare","list","swap16","swap32","swap64","inspect","max","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","_slicedToArray","_i","_s","_e","_n","_d","extendStatics","setPrototypeOf","__extends","__","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","_arguments","P","generator","fulfilled","step","__spreadArray","pack","ar","_toConsumableArray","arrayLikeToArray","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","Reflect","construct","toVal","mix","tmp","_objectWithoutPropertiesLoose","excluded","sourceKeys","_defineProperty","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","_e2","getPath","reduce","acc","getValue","themeMapping","transform","propValueFinal","userValue","style","prop","cssProperty","themeKey","propValue","theme","handleBreakpoints","capitalize","propTypes","filterProps","_objectWithoutProperties","sourceSymbolKeys","GLOBAL","Big","MAX_DP","MAX_POWER","NAME","INVALID","INVALID_DP","DIV_BY_ZERO","UNDEFINED","NUMERIC","round","sd","rm","more","xc","RM","pop","doExponential","isNonzero","charAt","abs","cmp","isneg","yc","div","dp","DP","bt","ri","bz","ai","rl","q","qc","qi","gt","gte","lt","lte","minus","xlty","plus","xe","ye","reverse","mod","ygtx","times","one","prec","sqrt","half","toExponential","toFixed","NE","PE","toNumber","strict","toPrecision","valueOf","_Big_","nl","search","roundDown","roundHalfUp","roundHalfEven","roundUp","reactPropsRegex","isPropValid","memoize","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Noop","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","styles","__emotion_styles","raw","process","Styled","withEmotionCache","cache","ref","finalTag","as","className","classInterpolations","mergedProps","useContext","ThemeContext","getRegisteredStyles","registered","serialized","serializeStyles","insertStyles","finalShouldForwardProp","newProps","_key","ele","createElement","possiblyStyleElement","Fragment","displayName","defaultProps","withComponent","nextTag","nextOptions","newStyled","bind","tagName","styled","emStyled","compose","handlers","getBorder","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadius","transformer","createUnaryUnit","borders","display","flexbox","gap","columnGap","rowGap","grid","palette","boxShadow","width","maxWidth","_props$theme","_props$theme$breakpoi","_props$theme$breakpoi2","breakpoints","breakpointsValues","minWidth","height","maxHeight","minHeight","sizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","textTransform","lineHeight","textAlign","typography","filterPropsMapping","positions","shadows","spacing","styleFunctionMapping","propToStyleFunction","styleFnName","getThemeValue","inputProps","styleFunction","styleFunctionSx","sx","traverse","sxInput","sxObject","emptyBreakpoints","createEmptyBreakpointObject","breakpointsKeys","css","styleKey","maybeFn","objects","allKeys","Set","objectsHaveSameKeys","removeUnusedBreakpoints","_excluded","propsToClassKey","variant","other","classKey","sort","_excluded2","_excluded3","getStyleOverrides","components","styleOverrides","getVariantStyles","variants","variantsStyles","definition","variantsResolver","_theme$components","_theme$components$nam","ownerState","themeVariants","themeVariant","isMatch","systemDefaultTheme","createTheme","rootShouldForwardProp","slotShouldForwardProp","defaultTheme","inputOptions","componentName","componentSlot","inputSkipVariantsResolver","skipVariantsResolver","inputSkipSx","skipSx","overridesResolver","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","muiStyledResolver","styleArg","expressions","expressionsWithDefaultTheme","stylesArg","_ref","themeInput","transformedStyleArg","resolvedStyleOverrides","slotKey","slotStyle","numOfCustomFnsApplied","placeholders","_ref2","Component","withConfig","basex","cond","NavigationContext","React","LocationContext","RouteContext","outlet","matches","Navigate","useInRouterContext","navigate","useNavigate","Outlet","OutletContext","useOutlet","Route","Router","basename","basenameProp","children","navigationType","NavigationType","static","staticProp","normalizePathname","navigationContext","navigator","locationProp","parsePath","pathname","trailingPathname","stripBasename","Routes","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","useLocation","parsedLocationArg","locationArg","remainingPathname","branches","flattenRoutes","siblings","compareIndexes","rankRouteBranches","matchRouteBranch","matchRoutes","routes","_renderMatches","joinPaths","pathnameBase","useRoutes","createRoutesFromChildren","useHref","useResolvedPath","joinedPathname","toPathname","getToPathname","endsWithSlash","locationPathname","routePathnamesJson","activeRef","resolveTo","useParams","element","route","caseSensitive","parentsMeta","parentPath","relativePath","childrenIndex","routesMeta","score","computeScore","paramRe","isSplat","segments","initialScore","segment","matchedParams","matchedPathname","matchPath","React.createElement","pattern","paramNames","regexpSource","RegExp","compilePath","captureGroups","paramName","splatValue","safelyDecodeURIComponent","toArg","routePathnameIndex","routePathnames","toSegments","fromPathname","relativeSegments","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","IntlErrorCode","IntlError","_super","exception","captureStackTrace","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","IntlFormatError","locale","FORMAT_ERROR","MessageFormatError","defaultMessage","MissingTranslationError","MISSING_TRANSLATION","gf","Float64Array","randombytes","_0","_9","gf0","_121665","D2","X","Y","ts64","vn","xi","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","inp","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","par25519","unpack25519","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","want","crypto_box_afternm","crypto_box_open_afternm","crypto_hashblocks_hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","crypto_hash","cswap","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","crypto_sign","sm","smlen","crypto_sign_open","unpackneg","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","box","keyLength","nonceLength","overheadLength","scalarMult","scalarLength","groupElementLength","before","checkBoxLengths","after","keyPair","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","mlen","detached","sig","verify","seedLength","signatureLength","hashLength","setPRNG","crypto","msCrypto","getRandomValues","getThemeProps","output","resolveProps","useThemeProps","useTheme","systemUseThemeProps","withStyles","stylesOrCreator","_options$withTheme","withTheme","stylesOptions","classNamePrefix","useStyles","makeStyles","WithStyles","forwardRef","classes","innerRef","hoistNonReactStatics","withStylesWithoutDefault","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","Provider","wallet","async","signTransaction","kp","rawTx","sendAndConfirmRawTransaction","reqs","txs","signAllTransactions","signedTxs","sigs","provider","getProvider","_provider","local","IdlError","super","ProgramError","idlErrors","errorCode","parseErr","errorMsg","LangErrorMessage","lowerCase","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","re","IdlCoder","field","types","fieldName","camelCase","borsh","fieldLayout","vec","option","defined","filtered","typeDefLayout","arrayTy","arrayLen","innerLayout","typeDef","fieldLayouts","replicate","BorshInstructionCoder","idl","ixLayout","parseIxLayout","sighashLayouts","sighash","ixName","encodeState","nameSpace","decoder","format","InstructionFormatter","ixLayouts","idlIx","idlField","formatIdlType","formatIdlData","flatIdlAccounts","flattenIdlAccounts","idlType","formatIdlDataDefined","enumType","namedFields","fieldData","variantName","pascalCase","prefix","accName","newPrefix","flat","preimage","_a","splitRegexp","_b","stripRegexp","_c","delimiter","dotCase","accountSize","idlAccount","variantSizes","typeSize","coption","arraySize","BorshAccountsCoder","layouts","accountLayouts","accountName","accountData","discriminator","accountDiscriminator","memcmp","appendData","camelcase","BorshEventCoder","events","event","eventTypeDef","discriminators","eventDiscriminator","logArr","disc","eventName","_AVAILABLE_FEATURES","_FEATURES","isSet","BorshStateCoder","stateDiscriminator","accData","ns","features.isSet","BorshCoder","discr","getSpan","rv","fromArray","OffsetLayout","UInt","UIntBE","V2E32","NearUInt64","lo32","hi32","Structure","decodePrefixes","fd","fsp","dest","firstOffset","lastOffset","lastWrote","fv","layoutFor","offsetOf","UnionDiscriminator","UnionLayoutDiscriminator","Union","defaultLayout","upv","usesPrefixDiscriminator","registry","boundGetSourceVariant","defaultGetSourceVariant","getSourceVariant","configGetSourceVariant","gsv","vlo","getVariant","dlo","clo","contentOffset","addVariant","VariantLayout","vb","SplTokenInstructionCoder","_","freezeAuthority","mintAuthority","initializeMint","freezeAuthorityOption","initializeMultisig","approve","revoke","setAuthority","authorityType","newAuthority","mintTo","burn","closeAccount","freezeAccount","thawAccount","transferChecked","approveChecked","mintToChecked","burnChecked","initilaizeAccount2","authority","syncNative","initializeAccount3","initializeMultisig2","encodeInitializeMint2","_ixName","_ix","LAYOUT","BufferLayout.u8","BufferLayout.blob","instructionMaxSpan","BufferLayout.struct","BufferLayout.nu64","SplTokenStateCoder","_idl","_name","_account","uint64","WrappedLayout","u64","fromBuffer","COptionLayout","decodeBool","encodeBool","BN","SplTokenAccountsCoder","TOKEN_ACCOUNT_LAYOUT","MINT_ACCOUNT_LAYOUT","_appendData","dataSize","SplTokenEventsCoder","SplTokenCoder","parseIdlErrors","toInstruction","ixArg","validateAccounts","ixAccounts","translateAddress","getMultipleAccounts","getMultipleAccountsCore","batches","ceil","all","commitmentOverride","createWithSeedSync","sha256Sync","createProgramAddressSync","findProgramAddressSync","associated","assoc","byte","padStart","TextDecoder","TextEncoder","TOKEN_PROGRAM_ID","ASSOCIATED_PROGRAM_ID","fetchData","decodeUpgradeableLoaderState","programdataAddress","programdataAccountInfo","programData","UPGRADEABLE_LOADER_STATE_LAYOUT","u32","latestBuildsResp","latestBuilds","verified","build","verified_slot","IDL_ACCOUNT_LAYOUT","splitArgsAndCtx","inputLen","InstructionNamespaceFactory","encodeFn","ixArgs","remainingAccounts","accs","accountsArray","rpcAccs","isMut","RpcFactory","txFn","translatedErr","TransactionFactory","ixFn","preInstructions","postInstructions","StateClient","coder","_programId","_address","programStateAddress","_sub","ixItem","programSigner","txItem","TransactionNamespaceFactory","rpcItem","RpcNamespaceFactory","addr","subscribe","ee","EventEmitter","listener","emit","unsubscribe","catch","AccountClient","_idlAccount","_coder","_size","fetchNullable","rpcUtil.getMultipleAccounts","subscriptions","delete","sizeOverride","associatedAddress","pubkeyUtil.associated","LOG_START_INDEX","EventManager","_eventParser","EventParser","_eventCallbacks","_eventListeners","_listenerIdCount","_onLogsSubscriptionId","parseLogs","allListeners","listenerCb","listeners","logScanner","LogScanner","execution","ExecutionContext","handleLog","newProgram","didPop","handleProgramLog","handleSystemLog","startsWith","logStr","logStart","exec","IDL","AccountsResolver","_accounts","_idlIx","_accountNamespace","_accountStore","AccountStore","accountDesc","accountDescName","pda","autoPopulatePda","seedDesc","parseProgramId","toBufferConst","argValue","accountValue","toBufferArg","toBufferAccount","toBufferValue","seedArgName","idlArgPosition","argDesc","pathComponents","fieldPubkey","fetchAccount","parseAccountValue","accountField","bU64","writeBigUInt64LE","BigInt","utf8.encode","_cache","MethodsBuilderFactory","rpcFn","simulateFn","accountNamespace","MethodsBuilder","_ixFn","_txFn","_rpcFn","_simulateFn","_accountsResolver","_signers","_remainingAccounts","ixs","_preInstructions","_postInstructions","Program","_events","simulate","accountFns","InstructionFactory","simulateItem","resp","methodItem","fetchIdl","idlAddr","inflatedIdl","inflate","utf8.decode","allowlist","defaults","DEFAULT_INTL_CONFIG","formats","messages","timeZone","defaultLocale","defaultFormats","fallbackOnEmptyString","onError","createIntlCache","dateTime","relativeTime","pluralRules","displayNames","createFastMemoizeCache","store","createFormatters","RelativeTimeFormat","Intl","ListFormat","DisplayNames","getDateTimeFormat","DateTimeFormat","strategy","strategies","variadic","getNumberFormat","NumberFormat","getPluralRules","PluralRules","getMessageFormat","locales","overrideFormats","IntlMessageFormat","formatters","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","isBN","negative","words","red","wordSize","window","parseHex4Bits","parseHexByte","lowerBound","parseBase","move","left","right","_initNumber","_initArray","_parseHex","_parseBase","_strip","limbLen","limbPow","imuln","_iaddn","_move","_expand","_normSign","for","zeros","groupSizes","groupBases","groupSize","groupBase","isZero","modrn","idivn","smallMulTo","ncarry","rword","maxJ","ArrayType","reqLength","_toArrayLikeLE","position","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","a1","a2","a3","a4","a5","a6","a7","a8","al8","ah8","a9","al9","ah9","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","diff","qj","divmod","positive","divn","umod","divRound","dm","andln","modn","egcd","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","delta","cmpn","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","prev","mod3","nOne","lpow","inv","wnd","currentLen","mont","useForkRef","refA","refB","refValue","setRef","_formatMuiErrorMessage","_assertThisInitialized","ReferenceError","__esModule","cacheDefault","serializer","serializerDefault","strategyDefault","monadic","cacheKey","computedValue","assemble","ObjectWithoutPrototypeCache","__importDefault","local_logger_1","localLogger","LoggingProvider","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","isArgumentElement","isNumberElement","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","year","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","WHITE_SPACE_REGEX","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","scale","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","elements","entries_1","first","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","hasDigits","decimal","currentOffset","targetOffset","nextCode","pruneLocation","els","SyntaxError","originalMessage","captureLocation","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","p1","xs","md","lg","defaultBreakpoints","up","styleFromPropValue","themeBreakpoints","breakpoint","cssKey","_breakpointsInput$key","breakpointsInput","breakpointsInOrder","breakpointKeys","breakpointOutput","HashRouter","historyRef","createHashHistory","history","action","Link","href","internalOnClick","isModifiedEvent","createPath","replaceProp","useLinkClickHandler","onClick","EmotionCacheContext","createContext","HTMLElement","createCache","func","typePropName","createEmotionProps","Emotion","cssProp","registeredStyles","ownerDocument","node","document","setTranslateValue","direction","containerProp","containerPropProp","resolvedContainer","rect","getBoundingClientRect","containerRect","containerWindow","ownerWindow","fakeTransform","computedStyle","getComputedStyle","getPropertyValue","offsetX","offsetY","transformValues","innerWidth","bottom","top","innerHeight","getTranslateValue","webkitTransform","defaultEasing","enter","easing","easeOut","exit","sharp","defaultTimeout","enteringScreen","leavingScreen","Slide","addEndListener","appear","container","easingProp","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","timeout","TransitionComponent","Transition","childrenRef","handleRefIntermediary","handleRef","normalizedTransitionCallback","isAppearing","handleEnter","reflow","handleEntering","transitionProps","getTransitionProps","webkitTransition","transitions","transition","handleEntered","handleExiting","handleExit","handleExited","updatePosition","handleResize","debounce","clear","_jsx","nodeRef","childProps","visibility","getCollapseUtilityClass","generateUtilityClass","generateUtilityClasses","CollapseRoot","orientation","entered","collapsedSize","hidden","overflow","CollapseWrapper","wrapper","CollapseWrapperInner","wrapperInner","Collapse","inProps","collapsedSizeProp","component","standard","slots","composeClasses","useUtilityClasses","timer","wrapperRef","autoTransitionDuration","isHorizontal","maybeIsAppearing","getWrapperSize","wrapperSize","transitionDuration","transitionTimingFunction","duration2","getAutoHeightDuration","clsx","muiSupportAuto","mapEventPropToEvent","eventProp","ClickAwayListener","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","activatedRef","syntheticEventRef","handleClickAway","useEventCallback","insideReactTree","doc","documentElement","clientWidth","clientX","clientHeight","clientY","clickedRootScrollbar","composedPath","contains","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","mappedMouseEvent","allClasses","containerRoot","containerAnchorOriginTopCenter","containerAnchorOriginBottomCenter","containerAnchorOriginTopRight","containerAnchorOriginBottomRight","containerAnchorOriginTopLeft","containerAnchorOriginBottomLeft","SNACKBAR_INDENTS","dense","DEFAULTS","maxSnack","hideIconVariant","autoHideDuration","anchorOrigin","vertical","horizontal","capitalise","omitContainerKeys","REASONS","TIMEOUT","CLICKAWAY","MAXSNACK","INSTRUCTED","isDefined","numberOrNull","numberish","objectMerge","Root","flexWrap","flexGrow","SnackbarContent","DIRECTION","getTransitionDirection","CheckIcon","WarningIcon","ErrorIcon","InfoIcon","iconStyles","marginInlineEnd","defaultIconVariants","success","createChainedFunction","funcs","extraArg","argums","useEnhancedEffect","Snackbar","ClickAwayListenerProps","disableWindowBlurListener","onClose","onMouseEnter","onMouseLeave","resumeHideDuration","timerAutoHide","handleClose","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","contentRoot","lessPadding","variantSuccess","variantError","variantInfo","variantWarning","wrappedRoot","StyledSnackbar","backgroundColor","emphasize","color","alignItems","paddingLeft","marginLeft","marginRight","SnackbarItem","propClasses","useRef","useState","collapsed","setCollapsed","useEffect","otherAriaAttributes","ariaAttributes","otherClassName","iconVariant","snack","otherAction","otherContent","content","otherTranComponent","otherTranProps","TransitionProps","otherTranDuration","singleClassName","singleContent","singleAction","singleAriaAttributes","snackMessage","singleTranComponent","singleTranProps","singleTranDuration","singleSnackProps","icon","callbacks","unmountOnExit","role","collapse","rootDense","center","boxSizing","zIndex","pointerEvents","flexDirection","xsWidthMargin","SnackbarContainer","combinedClassname","SnackbarProvider","enqueueSnackbar","preventDuplicate","hasSpecifiedKey","getTime","merger","requestClose","compareFunction","inQueue","inView","queue","handleDisplaySnack","snacks","processQueue","handleDismissOldest","popped","ignore","handleEnteredSnack","handleCloseSnack","shouldCloseAll","closeSnackbar","toBeClosed","handleExitedSnack","key1","newState","contextValue","render","domRoot","categ","anchor","category","existingOfCategory","snackbars","origin","SnackbarContext","createPortal","Parent","isNativeReflectConstruct","Function","Wrapper","getPrototypeOf","clamp","decomposeColor","colors","hexToRgb","marker","recomposeColor","getContrastRatio","foreground","background","lumA","getLuminance","lumB","rgb","hslToRgb","alpha","darken","coefficient","lighten","scrollTop","_style$transitionDura","_style$transitionTimi","delay","transitionDelay","properties","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","marginKeys","paddingKeys","spacingKeys","defaultValue","themeSpacing","createUnarySpacing","transformed","resolveCssProperty","cssProperties","getStyleFromPropValue","margin","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","customInspectSymbol","K_MAX_LENGTH","arrayView","isInstance","fromArrayView","SharedArrayBuffer","numberIsNaN","toPrimitive","mustMatch","proto","toLocaleString","hexSliceLookupTable","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","readUintLE","readUintBE","readUint8","readUint16LE","readUint16BE","readUint32LE","readUint32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","last","boundsError","readBigUInt64BE","readBigInt64LE","readBigInt64BE","writeUintLE","writeUintBE","writeUint8","writeUint16LE","writeUint16BE","writeUint32LE","writeUint32BE","writeBigUInt64BE","writeBigInt64LE","writeBigInt64BE","copyWithin","getMessage","Base","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","alphabet","table","i16","BufferBigIntNotDefined","stylize","stylizeNoColor","depth","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","recurseTimes","isFunction","isString","primitive","simple","isNull","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","isRegExp","isDate","braces","toUTCString","formatProperty","formatArray","cur","reduceToSingleString","desc","objectToString","isPrimitive","_functionsHaveNames","hasOwn","objectKeys","pSlice","functionsHaveNames","pToString","arrbuf","fail","regex","getName","AssertionError","expected","operator","generatedMessage","truncate","stackStartFunction","fn_name","next_line","something","utilInspect","rawname","_deepEqual","memos","multiline","ignoreCase","Float32Array","actualIndex","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","kb","objEquiv","expectedException","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","nameWithProperty","layout_","boundConstructor_","elementSpan","rem","Int","divmodInt64","roundedInt64","NearUInt64BE","NearInt64","NearInt64BE","Float","FloatBE","Double","DoubleBE","Sequence","elementLayout","elo","fixBitwiseResult","BitStructure","msb","_packedSetValue","_packedGetValue","bf","BitField","Boolean","totalBits","usedBits","sum","valueMask","wordMask","wordValue","CString","srcb","UTF8","maxSpan","Constant","realSendAndConfirmTransaction","ASSOCIATED_TOKEN_PROGRAM_ID","FAILED_TO_FIND_ACCOUNT","INVALID_ACCOUNT_OWNER","pubkeyToBuffer","isAccount","accountOrPublicKey","AuthorityTypeCodes","MintTokens","FreezeAccount","AccountOwner","CloseAccount","NATIVE_MINT","MintLayout","AccountLayout","MultisigLayout","associatedProgramId","Token","newAccount","mintPublicKey","createAssociatedTokenAccount","createAssociatedTokenAccountInternal","getOrCreateAssociatedAccountInfo","createMultisig","multisigAccount","getMintInfo","mintInfo","getMultisigInfo","multisigInfo","ownerPublicKey","currentAuthorityPublicKey","currentAuthority","authorityPublicKey","getMinBalanceRentForExemptMint","getMinBalanceRentForExemptAccount","getMinBalanceRentForExemptMultisig","createMint","mintAccount","createWrappedNativeAccount","createInitMintInstruction","commandDataLayout","createInitAccountInstruction","createTransferInstruction","multiSigners","createApproveInstruction","createRevokeInstruction","createSetAuthorityInstruction","createMintToInstruction","createBurnInstruction","createCloseAccountInstruction","createFreezeAccountInstruction","createThawAccountInstruction","createTransferCheckedInstruction","createApproveCheckedInstruction","createMintToCheckedInstruction","createBurnCheckedInstruction","createSyncNativeInstruction","getAssociatedTokenAddress","createAssociatedTokenAccountInstruction","FormatError","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","ValidationStatus","CivicPassMessageAction","CivicPassMessageEventResult","ChainType","RefreshTokenState","CivicPassIssuanceStatus","TokenIssuanceState","GatewayStatus","GatekeeperRecordState","TokenState","State","__createBinding","k2","__setModuleDefault","__decorate","decorators","decorate","__importStar","BinaryReader","BinaryWriter","BorshError","baseDecode","baseEncode","bn_js_1","bs58_1","textDecoder","fatal","INITIAL_LENGTH","fieldPath","splice","maybeResize","writeBuffer","writeU32","handlingRangeError","propertyKey","propertyDescriptor","originalMethod","readBuffer","readU32","capitalizeFirstLetter","serializeField","fieldType","writer","writeFixedArray","writeArray","writeU8","serializeStruct","addToFieldPath","structSchema","deserializeField","readFixedArray","readArray","readU8","deserializeStruct","classType","fieldValue","possibleConstructorReturn","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","minAssert","minUtils","getNAF","naf","getJSF","k1","jsf","m8","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","easeInOut","easeIn","shortest","shorter","short","complex","formatMs","milliseconds","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","useThemeSystem","DATE_TIME_FORMAT_OPTIONS","getFormatter","filteredOptions","timeStyle","dateStyle","formatDate","formatTime","formatDateTimeRange","formatRange","formatDateToParts","formatToParts","formatTimeToParts","_getPrototypeOf","classNames","rawClassName","isStringTag","inserted","insert","sheet","Events","EE","once","addListener","emitter","evt","_eventsCount","clearEvent","eventNames","names","listenerCount","removeListener","on","removeAllListeners","prefixed","_options$duration","_options$easing","_options$delay","deepmerge","invariantIntlContext","intl","CORE_DEFAULT_INTL_CONFIG","textComponent","assignUniqueKeysToParts","formatXMLElementFn","shallowEqual","objA","objB","aKeys","bKeys","deprecatedPropType","murmur2","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p2","cursor","unitless","handleInterpolation","interpolation","anim","interpolated","createStringFromObject","previousCursor","labelPattern","stringMode","strings","hashString","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","versions","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","algorithm","newMethodName","reset","finalized","blockCount","byteCount","outputBlocks","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","Uint32Array","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","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","_unsupportedIterableToArray","minLen","_setPrototypeOf","Tablelvl2Context","WalletName","createMixins","toolbar","black","white","grey","A100","A200","A400","A700","purple","orange","blue","lightBlue","green","light","primary","secondary","disabled","divider","paper","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","createPalette","contrastThreshold","getDefaultPrimary","getDefaultSecondary","getDefaultError","getDefaultInfo","getDefaultSuccess","getDefaultWarning","getContrastText","augmentColor","mainShade","lightShade","darkShade","contrastText","modes","caseAllCaps","defaultFontFamily","createTypography","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","casing","subtitle1","subtitle2","body1","body2","button","caption","overline","createShadow","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","mixinsInput","paletteInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","muiTheme","ListContext","ERROR","JS_SHA256_NO_WINDOW","NODE_JS","JS_SHA256_NO_NODE_JS","JS_SHA256_NO_COMMON_JS","JS_SHA256_NO_ARRAY_BUFFER","EXTRA","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","is224","Sha256","nodeWrap","eval","nodeMethod","createHash","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","hBytes","hashed","oKeyPad","iKeyPad","s0","s1","maj","ab","da","cd","bc","dataView","setUint32","innerHash","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","newObj","hasPropertyDescriptor","_utils","createSvgIcon","Global","sheetRef","useLayoutEffect","StyleSheet","speedy","isSpeedy","rehydrating","querySelector","tags","setAttribute","hydrate","flush","sheetRefCurrent","nextElementSibling","_len","_len2","_key2","_inheritsLoose","objectAssign","util","useGateway","GatewayProvider","Badge","ButtonMode","getTokenDescription","IdentityButton","version_1","types_1","button_1","badge_1","solana_1","SolanaGatewayProvider","useSolanaGateway","react_1","logger_1","dispatch","refreshTimeoutId","expectWalletConnected","useCallback","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","password","week","datetime","handleKeyDown","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","readOnly","isContentEditable","focusTriggersKeyboardModality","handleBlurVisible","useIsFocusVisible","onBlurVisible","ReactDOM","defaultView","NUMBER_FORMAT_OPTIONS","formatNumber","formatNumberToParts","_interopRequireDefault","Client","_classCallCheck2","_inherits2","_possibleConstructorReturn2","_getPrototypeOf2","_websocket","sham","Proxy","_isNativeReflectConstruct","_CommonClient","_ref$autoconnect","_ref$reconnect","reconnect","_ref$reconnect_interv","reconnect_interval","_ref$max_reconnects","generate_request_id","uuid","v4","generateRequest","ClientBrowser","callServer","reviver","replacer","notificationIdNull","isBatch","hasCallback","_parseResponse","createBreakpoints","_breakpoints$values","_breakpoints$unit","_breakpoints$step","between","endIndex","down","upperbound","only","_toolbar","gutters","paddingRight","indigo","pink","_palette$primary","_palette$secondary","_palette$error","_palette$warning","_palette$info","_palette$success","_palette$type","_palette$contrastThre","_palette$tonalOffset","roundWithDeprecationWarning","_ref$fontFamily","_ref$fontSize","_ref$fontWeightLight","_ref$fontWeightRegula","_ref$fontWeightMedium","_ref$fontWeightBold","_ref$htmlFontSize","shape","_prop$split","_prop$split2","_themeBreakpoints","createSpacing","spacingInput","mui","_options$breakpoints","_options$mixins","_options$palette","_options$typography","overrides","iterableToArrayLimit","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","prependListener","prependOnceListener","binding","cwd","chdir","umask","weakMemoize","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","messageDescriptor","defaultRichTextElements","msgId","LIST_FORMAT_OPTIONS","now","formatList","results","formatListToParts","MISSING_INTL_API","richValues_1","serializedValues","generateToken","part","_arrayLikeToArray","arr2","_possibleConstructorReturn","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","assertThisInitialized","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","_fixedNafMul","doubles","_getDoubles","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","solanaBorsh_1","SCHEMA","makeConfig","getGatekeeperEndpoint","GATEKEEPER_ENDPOINTS","urlToCluster","clusterEndpoint","web3_js_1","clusterUrl","supportedClusters","matchedUrlCluster","find","matchedStringCluster","solanaVersionedEndpoint","dev","preprod","prod","stage","supportedClusterUrls","recentBlockCheck","defineMessage","isMuiElement","muiNames","muiName","wait","debounced","later","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","PLURAL_FORMAT_OPTIONS","formatPlural","DISPLAY_NAMES_OPTONS","formatDisplayName","of","_arrayWithHoles","_nonIterableRest","_iterableToArray","iter","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","nodeType","freeModule","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","arraySome","predicate","isHostObject","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","IE_PROTO","funcToString","reIsNative","nativeKeys","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","entry","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","iteratee","baseTimes","skipIndexes","isIndex","assocIndexOf","getMapData","pairs","LARGE_ARRAY_SIZE","fromRight","baseFor","keysFunc","iterable","baseGet","isKey","castPath","toKey","baseHasIn","baseIsEqual","customizer","bitmask","isObjectLike","equalFunc","objIsArr","othIsArr","objTag","othTag","getTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isMasked","baseIteratee","identity","srcValue","isStrictComparable","matchesStrictComparable","hasFunc","isLength","hasPath","hasIn","UNORDERED_COMPARE_FLAG","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","basePropertyDeep","baseKeys","Ctor","isPrototype","stringToPath","arrValue","othIndex","isKeyable","isSymbol","ctorString","baseToString","quote","resolver","memoized","Cache","isArrayLike","isArrayLikeObject","baseUnary","baseForOwn","IntlContext","Consumer","Context","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","opacity","order","orphans","tabSize","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","_insertTag","insertionPoint","nextSibling","prepend","firstChild","insertBefore","ctr","_proto","nodes","rule","appendChild","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","parentNode","removeChild","TableContext","connecting","Portal","_props$disablePortal","disablePortal","onRendered","_React$useState","mountNode","setMountNode","getContainer","getScrollbarSize","scrollDiv","scrollbarSize","offsetWidth","ariaHidden","show","removeAttribute","getPaddingRight","ariaHiddenSiblings","currentNode","nodesToExclude","blacklistTagNames","findIndexOf","containerInfo","some","handleContainer","fixedNodes","restoreStyle","restorePaddings","disableScrollLock","scrollHeight","isOverflowing","querySelectorAll","parentElement","scrollContainer","nodeName","removeProperty","setProperty","ModalManager","modals","containers","modalIndex","modalRef","hiddenSiblingNodes","hiddenSiblings","getAttribute","getHiddenSiblings","containerIndex","restore","nextTop","Unstable_TrapFocus","_props$disableAutoFoc","disableAutoFocus","_props$disableEnforce","disableEnforceFocus","_props$disableRestore","disableRestoreFocus","getDoc","isEnabled","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","rootRef","handleOwnRef","prevOpenRef","activeElement","hasAttribute","contain","hasFocus","loopFocus","keyCode","shiftKey","interval","tabIndex","WebkitTapHighlightColor","invisible","SimpleBackdrop","_props$invisible","defaultManager","Modal","_props$BackdropCompon","BackdropComponent","BackdropProps","_props$closeAfterTran","closeAfterTransition","_props$disableBackdro","disableBackdropClick","_props$disableEscapeK","disableEscapeKeyDown","_props$disableScrollL","_props$hideBackdrop","hideBackdrop","_props$keepMounted","keepMounted","_props$manager","manager","onBackdropClick","onEscapeKeyDown","exited","setExited","mountNodeRef","hasTransition","getHasTransition","getModal","handleMounted","mount","handleOpen","isTopModal","handlePortalRef","remove","inlineStyle","onKeyDown","stopPropagation","currentTarget","TrapFocus","useThemeWithoutDefault","_props$style","entering","Fade","_props$disableStrictM","disableStrictModeCompat","_props$TransitionComp","_props$timeout","enableStrictModeCompat","unstable_strictMode","foreignRef","nodeOrAppearing","maybeAppearing","Backdrop","justifyContent","Paper","_props$component","_props$square","square","_props$elevation","elevation","_props$variant","outlined","rounded","elevations","shadow","defaultTransitionDuration","Dialog","_props$fullScreen","fullScreen","_props$fullWidth","fullWidth","_props$maxWidth","_props$PaperComponent","PaperComponent","_props$PaperProps","PaperProps","_props$scroll","scroll","_props$transitionDura","ariaDescribedby","ariaLabelledby","mouseDownTarget","onMouseUp","onMouseDown","paperFullScreen","paperFullWidth","scrollPaper","scrollBody","overflowY","overflowX","verticalAlign","outline","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","DialogTitle","_props$disableTypogra","disableTypography","Typography","IconButton","_props$edge","edge","_props$color","_props$disabled","_props$disableFocusRi","disableFocusRipple","_props$size","ButtonBase","edgeStart","edgeEnd","centerRipple","focusRipple","colorInherit","colorPrimary","colorSecondary","sizeSmall","DialogContent","_props$dividers","dividers","WebkitOverflowScrolling","paddingTop","List","_props$dense","_props$disablePadding","disablePadding","subheader","listStyle","paddingBottom","collapsedHeight","_props$collapsedSize","wrapperHeight","nodeOrNext","maybeNext","WalletDialogContext","getScale","Grow","autoTimeout","_getTransitionProps","_getTransitionProps2","getOffsetTop","getOffsetLeft","getTransformOriginValue","transformOrigin","getAnchorEl","anchorEl","Popover","_props$anchorOrigin","anchorPosition","_props$anchorReferenc","anchorReference","getContentAnchorEl","_props$marginThreshol","marginThreshold","_props$transformOrigi","transitionDurationProp","_props$TransitionProp","paperRef","getAnchorOffset","contentAnchorOffset","resolvedAnchorEl","anchorRect","anchorVertical","getContentAnchorOffset","contentAnchorEl","child","getScrollParent","offsetTop","getTransformOrigin","elemRect","getPositioningStyle","offsetHeight","elemTransformOrigin","anchorOffset","heightThreshold","widthThreshold","_diff","_diff2","_diff3","setPositioningStyles","positioning","handlePaperRef","nextItem","disableListWrap","previousItem","lastChild","previousElementSibling","textCriteriaMatches","nextFocus","textCriteria","innerText","textContent","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","MenuList","actions","_props$autoFocus","autoFocus","_props$autoFocusItem","autoFocusItem","_props$disabledItemsF","_props$disableListWra","listRef","textCriteriaRef","previousKeyMatched","lastTime","adjustStyleForScrollbar","containerElement","noExplicitWidth","activeItemIndex","newChildProps","preventDefault","criteria","lowerKey","currTime","performance","keepFocusOnCurrent","RTL_ORIGIN","LTR_ORIGIN","Menu","disableAutoFocusItem","_props$MenuListProps","MenuListProps","onEnteringProp","PopoverClasses","menuListActionsRef","contentAnchorRef","ListItemIcon","alignItemsFlexStart","marginTop","_superPropBase","receiver","PART_TYPE","isFormatXMLElementFn","currentPluralValue","els_1","varName","value_1","formatFn","chunks","lastPart","mergeLiteral","formatMuiErrorMessage","encodeURIComponent","webpackPolyfill","deprecate","pre","curves","PresetCurve","edwards","isInfinity","defineCurve","lambda","basis","Enum","iframe_resizer_react_1","Wrapper_1","constants_1","config_1","config_2","gatekeeperClient_1","useReducer_1","useUserInteraction_1","useOrchestration_1","useWalletHooks_1","GatewayContext","requestGatewayToken","gatewayStatus","NOT_REQUESTED","DEFAULT_GATEKEEPER_STAGE","redirectUrlFromWindow","chainImplementation","logo","redirectUrl","gatekeeperNetwork","autoShowModal","ownerSigns","gatekeeperNetworkAddress","useReducer","UNKNOWN","tokenRequested","iframeMinimized","firstTokenCheck","renderIframe","powoFinished","refreshInProgress","walletPowoInProgress","walletAddress","iframeSrcUrl","tokenIssuanceState","refreshTokenState","NOT_REQUIRED","civicPass","chainType","gatewayToken","gatewayTokenTransaction","clusterName","httpConfig","queryParams","network","gatekeeperEndpoint","gatekeeperClient","baseUrl","civicPassSrcUrl","getCivicPassEndpoint","iframeLoaded","setIframeLoaded","ACTIVE","TESTID_WRAPPER_CONTAINER","TESTID_WRAPPER","loaded","TESTID_IFRAME","IFRAME_ID","heightCalculationMethod","checkOrigin","onLoad","inPageLinks","allow","allowFullScreen","frameBorder","TESTID_IFRAME_CLOSE_BTN","TESTID_RECONNECT_WALLET","getDefaultApiNumRetries","API_NUM_RETRIES","COMPLIANCE_ENDPOINTS","DEFAULT_API_NUM_RETRIES","DEFAULT_REFRESH_INTERVAL","DEFAULT_CIVIC_COMPLIANCE_SRC_URL","modifiedUrl","EpochSchedule","SendTransactionError","rpcMethod","Authorized","splitInstruction","splitWithSeed","statusFromToken","resetState","powoRequested","walletToRefresh","gatekeeperRecordState","recordState","LOCATION_NOT_SUPPORTED","ISSUED_LOCATION_NOT_SUPPORTED","isIssuedLocationNotSupported","REFRESH_TOKEN_REQUIRED","PROOF_OF_WALLET_OWNERSHIP","expiryTime","hasExpired","REVOKED","FROZEN","_isPlaceholder","_curry1","_curry2","f2","_concat","set1","set2","len1","_arity","_curryN","combined","argsIdx","combinedIdx","curryN","addIndex","origFn","_curry3","f3","adjust","_idx","_list","_isTransformer","_dispatchable","xf","_isArray","transducer","_reduced","XAll","_xfBase","_map","functor","_isString","_isArrayLike","XWrap","_xwrap","thisObj","_iterableReduce","_methodReduce","symIterator","_reduce","_arrayReduce","XMap","_xmap","_has","_isArguments","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","ks","checkArgsLength","nth","pathsArray","_isInteger","pathAr","pluck","allPass","preds","always","XAny","anyPass","ap","applyF","applyX","_aperture","XAperture","full","getCopy","aperture","vals","mapValues","applySpec","spec","applyTo","ascend","aa","bb","isNil","assocPath","nextObj","nAry","binary","_isFunction","liftN","lifted","lift","both","curry","_makeFlat","recursive","flatt","jlen","ilen","_flatCat","rxf","preservingReduced","chain","monad","_cloneRegExp","sticky","unicode","_clone","refFrom","refTo","deep","copiedValue","comparator","pred","not","complement","_pipe","_checkForMethod","methodname","fromIndex","toIndex","tail","pipe","composeK","_pipeP","pipeP","composeP","head","_identity","pipeWith","headList","tailList","composeWith","_arrayFromIterator","_includesWith","_uniqContentEquals","aIterator","bIterator","stackA","stackB","_equals","aItem","_objectIs","typeA","_functionName","keysA","extendedStackA","extendedStackB","_indexOf","inf","_includes","_quote","_toISOString","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","_complement","_filter","_isObject","XFilter","filterable","_toString","recur","mapPairs","constructN","Fn","$0","$1","$2","$3","$4","$5","$6","$7","$8","$9","converge","fns","XReduceBy","valueFn","valueAcc","keyFn","inputs","reduceBy","elt","countBy","dec","defaultTo","descend","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","difference","firstLen","secondLen","toFilterOut","differenceWith","dissoc","dissocPath","divide","XDrop","drop","XTake","take","dropLast","XDropLast","_dropLast","dropLastWhile","XDropLastWhile","retained","retain","_dropLastWhile","XDropRepeatsWith","lastValue","seenFirstValue","sameAsLast","_xdropRepeatsWith","dropRepeatsWith","dropRepeats","XDropWhile","dropWhile","either","empty","takeLast","endsWith","suffix","eqBy","eqProps","obj1","obj2","evolve","transformations","transformation","XFind","XFindIndex","XFindLast","findLast","XFindLastIndex","lastIdx","findLastIndex","flatten","flip","forEachObjIndexed","keyList","fromPairs","groupBy","groupWith","nextidx","_path","identical","ifElse","onTrue","onFalse","inc","indexBy","innerJoin","ys","insertAll","elts","uniqBy","appliedItem","uniq","intersection","list1","list2","lookupList","filteredList","intersperse","separator","nextKey","objOf","_stepCatArray","_stepCatString","_stepCatObject","_objectAssign","into","_stepCat","invert","invertObj","invoker","juxt","keysIn","_isNumber","getter","setter","toFunctorFn","lensIndex","lensPath","lensProp","mapAccum","mapAccumRight","mapObjIndexed","mathMod","maxBy","mean","median","memoizeWith","mFn","mergeAll","mergeWithKey","mergeDeepWithKey","lObj","rObj","lVal","rVal","mergeDeepLeft","mergeDeepRight","mergeDeepWith","mergeLeft","mergeRight","mergeWith","_l","_r","minBy","modulo","positiveFrom","positiveTo","multiply","negate","none","nthArg","_of","omit","called","_assertPromise","otherwise","Identity","over","fst","snd","_createPartialApplicator","partial","partialRight","partition","pathEq","pathOr","pathSatisfies","propPath","pickAll","pickBy","pipeK","product","useWith","transformers","project","propEq","propIs","propOr","propSatisfies","ps","reduceRight","reduceWhile","reduced","repeat","replacement","scan","sequence","traversable","sortBy","sortWith","splitAt","splitEvery","splitWhen","subtract","symmetricDifference","symmetricDifferenceWith","takeLastWhile","XTakeWhile","takeWhile","XTap","tap","andThen","toLower","toPairs","toPairsIn","toUpper","transduce","transpose","outerlist","innerlist","beginRx","endRx","tryCatch","tryer","catcher","unapply","unary","uncurryN","endIdx","currentDepth","unfold","uniqWith","unionWith","unless","whenFalseFn","unnest","until","valuesIn","vs","Const","when","whenTrueFn","where","testObj","whereEq","without","xprod","zip","zipObj","zipWith","thunkify","fnArgs","hoistNonReactStatics$1","verifyConfigMessages","createIntl","resolvedConfig","supportedLocalesOf","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","indexof","charat","begin","strlen","sizeof","combine","characters","return","caret","dealloc","delimit","whitespace","escaping","commenter","identifier","compile","rules","rulesets","pseudo","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","rulesheet","identifierWithPointTracking","getRules","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","stylisPlugins","_insert","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","collection","middleware","shouldCache","millify","utils_1","denominator","defaultOptions","parseValue","unitIndex","roundTo","precision","lowercase","formatted","decimalSeparator","simulateTransactionWithCommitment","connectionInner","transactionTyped","sendConnection","DEFAULT_PROVIDER_OPTIONS","printLogs","verifySigners","connections","conn","encoded","_sendRawTransaction","oldConsoleError","DEFAULT_READONLY_PUBLIC_KEY","broadcaster","theTx","broadcast","signAll","simTX","SolanaProvider","broadcastConnections","_receipt","useWebsocket","retryOpts","awaitSignatureConfirmation","pollForReceipt","retry","retries","minTimeout","receipt","eventParser","consumeLog","amtStr","anchorProvider","saberProvider","isObjectEmpty","contextTheme","muiUseTheme","isNativeFunction","_wrapNativeSuper","Rand","rand","_rand","getBytes","getByte","__webpack_amd_options__","bindConstructorLayout","greedy","u8","u16","u24","u40","u48","nu64","u16be","u24be","u32be","u40be","u48be","nu64be","s8","s16","s24","s32","s40","s48","ns64","s16be","s24be","s32be","s40be","s48be","ns64be","f32","f32be","f64","f64be","seq","unionLayoutDiscriminator","cstr","utf8","const","clientVersion","packageJson","DEFAULT_LOG_LEVEL","allowLogging","logLevels","atLeastlogLevel","REACT_APP_LOG_LEVEL","urlSearchParams","urllogLevel","freeze","interpolations","typeOf","EMPTY_ARRAY","EMPTY_OBJECT","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","REACT_APP_SC_ATTR","SC_VERSION","__VERSION__","IS_BROWSER","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","STATIC_EXECUTION_CONTEXT","throwStyledComponentsError","DefaultGroupedTag","indexOfGroup","group","insertRules","oldBuffer","oldSize","newSize","throwStyledError","ruleIndex","clearGroup","startIndex","deleteRule","getGroup","getRule","groupIDRegister","reverseRegister","nextFreeGroup","getGroupForId","getIdForGroup","setGroupForId","SELECTOR","MARKER_RE","rehydrateNamesFromContent","registerName","rehydrateSheetFromTag","__webpack_nonce__","makeStyleTag","prevStyle","childNodes","CSSOMTag","_error","cssText","TextTag","refNode","VirtualTag","_target","SHOULD_REHYDRATE","isServer","useCSSOMInjection","globalStyles","gs","server","registerId","reconstructWithOptions","withNames","allocateGSInstance","hasNameForId","groupNames","clearNames","clearRules","clearTag","AD_REPLACER_R","getAlphabeticChar","generateAlphabeticName","phash","isStaticRules","SEED","ComponentStyle","componentId","baseStyle","staticRulesId","isStatic","NODE_ENV","baseHash","generateAndInjectStyles","executionContext","styleSheet","stylis","cssStatic","generateName","cssStaticFormatted","dynamicHash","partRule","partChunk","partString","cssFormatted","COMMENT_REGEX","COMPLEX_SELECTOR_PREFIX","createStylisInstance","_componentId","_selector","_selectorRegexp","_consecutiveSelfRefRegExp","plugins","Stylis","parsingRules","parseRulesPlugin","toSheet","selectors","parents","at","selfReferenceReplacer","stringifyRules","flatCSS","cssStr","use","parsedRules","plugin","StyleSheetContext","StyleSheetConsumer","StylisContext","masterSheet","masterStylis","useStyleSheet","useStylis","StyleSheetManager","setPlugins","contextStyleSheet","useMemo","disableCSSOMInjection","disableVendorPrefixes","shallowequal","Keyframes","inject","stylisInstance","resolvedName","uppercaseCheck","uppercasePattern","msPattern","prefixAndLowerCase","hyphenateStyleName","isFalsish","chunk","ruleSet","isReactComponent","isPlainObject","objToCssArray","prevKey","isCss","hyphenate","addTag","interleave","originalConsoleError","providedTheme","escapeRegex","dashesAtEnds","escape","isTag","isValidKey","mixin","mixinDeep","ThemeConsumer","ThemeProvider","outerTheme","themeContext","identifiers","createStyledComponent","isTargetStyledComp","isCompositeComponent","attrs","parentComponentId","generateComponentId","finalAttrs","filterFn","elementToBeCreated","WrappedStyledComponent","componentStyle","forwardedComponent","forwardedRef","componentAttrs","foldedComponentIds","resolvedAttrs","resolvedAttrDef","attrDef","determineTheme","generatedClassName","warnTooManyClasses","refToForward","$as","isTargetTag","computedProps","propsForElement","validAttr","previousComponentId","optionsToCopy","newComponentId","_foldedDefaultProps","hoist","constructWithOptions","componentConstructor","isValidElementType","templateFunction","StyledComponent","domElement","GlobalStyle","createStyles","removeStyles","renderStyles","createGlobalStyle","globalStyle","GlobalStyleComponent","keyframes","ServerStyleSheet","_emitSheetCSS","SC_ATTR_VERSION","getStyleTags","sealed","getStyleElement","dangerouslySetInnerHTML","__html","seal","collectStyles","interleaveWithNodeStream","WithTheme","themeProp","hoistStatics","__PRIVATE__","reducer","R","CHECKING","gatekeeperRecord","requestPayload","payload","networkConfig","logDebug","dispatchSuccess","getAction","REQUESTED","ISSUED","ISSUED_EXPIRED","ISSUED_EXPIRY_APPROACHING","dispatchGatekeeperRecord","getGatekeeperRecordWithPayload","SERVER_FAILURE","requiresGatekeeperRecordStatusCheck","newHttpConfig","useHttpConfigRef","gatewayStatusToCivicPassAction","IN_REVIEW","TOKEN_IN_REVIEW","ISSUANCE","TOKEN_ACTIVE","TOKEN_REVOKED","TOKEN_FROZEN","REJECTED","TOKEN_REJECTED","FAILED_IP_CHECK","REFRESH","STATUS","COLLECTING_USER_INFORMATION","VALIDATING_USER_INFORMATION","USER_INFORMATION_VALIDATED","USER_INFORMATION_REJECTED","validationProcessToGatewayStatus","COLLECTING","PROCESSING","FAILED","NOT_FOUND","COMPLETED","getCivicPassSrcUrl","logError","searchParams","networkAddress","requiresRefresh","requiresProofOfWalletOwnership","shouldRequestPowo","VERIFIED","responsePayload","IN_PROGRESS","CANCELLED","REQUIRES_POWO","getActionForStaticResponse","SUCCESS","dispatchComplianceEventResult","FAILURE","getActionForIssuanceResponse","getActionForPowoResponse","getActionForLocationNotSupportedResponse","getActionForRefreshResponse","getActionForStatusResponse","handler","addTokenChangeListeners","listernerId","addOnGatewayTokenChangeListener","removeOnGatewayTokenChangeListener","removeOnChainListener","dispatchTokenFromChain","connectedWallet","findGatewayToken","tokenUtils_1","WAIT_FOR_ON_CHAIN","setTimeoutForRefresh","checkForRefreshWithTimeout","tokenExpirationMarginSeconds","checkForExpirationIntervalMilliseconds","getTokenRefreshIntervalMilliseconds","isTokenRefreshRequired","expiring","refreshToken","useWallet","proof","refreshResult","waitForUnexpiredGatewayToken","waitForTokenRefreshTimoutMilliseconds","isDisabled","getButtonText","getIcon","IconLogo_1","IconError_1","IconLoading_1","IconSuccess_1","IconWarning_1","buttonIconStyle","Icon","LOGO","IconLogo","IconError","SPINNER","IconLoading","IconSuccess","IconWarning","solana_gateway_ts_1","prove_solana_wallet_1","GatewayContext_1","createSolanaTransactionFromBase64","partiallySignedTx","handleTransaction","Connection","tokenDidChange","onGatewayTokenChange","issuingGatekeeper","listenerId","onChainToken","proveWalletOwnership","prove","handleUserSignedTransaction","SOLANA","solanaGatewayToken","solanaGatewayTokenTransaction","rnds8","rng","REGEX","byteToHex","_nodeId","_clockseq","_lastMSecs","_lastNSecs","v1","clockseq","seedBytes","random","msecs","nsecs","dt","tmh","hashfunc","generateUUID","namespace","unescape","stringToBytes","DNS","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","cnt","md5ff","md5gg","md5hh","md5ii","md5","v3","v35","length32","hexTab","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","rnds","ROTL","v5","H","_i2","_t","_t2","SvgIcon","_props$fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","focusable","userSelect","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","requirePropFactory","componentNameInError","unsupportedProp","propFullName","useControlled","controlled","defaultProp","isControlled","valueState","setValue","newValue","useId","idOverride","defaultId","setDefaultId","zero$1","LITERALS$1","L_CODES$1","D_CODES$1","MAX_BITS$1","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","_dist_code","_length_code","MAX_MATCH$1","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","next_code","init_block","dyn_ltree","dyn_dtree","bl_tree","END_BLOCK","opt_len","static_len","last_lit","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","stree","heap_max","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","_tr_stored_block$1","stored_len","copy_block","_tr_flush_block_1","opt_lenb","static_lenb","max_blindex","strm","data_type","black_mask","detect_data_type","l_desc","d_desc","bl_desc","BL_CODES$1","build_bl_tree","lcodes","dcodes","blcodes","rank","send_all_trees","trees","_tr_init","LENGTH_CODES$1","tr_static_init","_tr_stored_block","_tr_flush_block","_tr_tally","lit_bufsize","_tr_align","STATIC_TREES","bi_flush","adler32_1","adler","s2","crcTable","makeTable","crc32_1","crc","constants$2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","Z_NO_FLUSH$2","Z_FULL_FLUSH$1","Z_FINISH$3","Z_BLOCK$1","Z_OK$3","Z_STREAM_END$3","Z_STREAM_ERROR$2","Z_DATA_ERROR$2","Z_BUF_ERROR$1","Z_DEFAULT_COMPRESSION$1","Z_DEFAULT_STRATEGY$1","Z_DEFLATED$2","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","HASH","hash_shift","hash_mask","flush_pending","avail_out","pending_out","next_out","total_out","flush_block_only","block_start","strstart","put_byte","putShortMSB","read_buf","avail_in","next_in","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","window_size","hash_size","ins_h","deflate_fast","hash_head","bflush","match_length","max_lazy_match","MIN_MATCH","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","max_block_size","pending_buf_size","max_start","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE","MAX_BITS","deflateResetKeep","deflateReset","deflateInit2","windowBits","memLevel","deflate_1$2","deflateInit","deflateSetHeader","deflate","beg","old_flush","hcrc","os","bstate","deflate_huff","deflate_rle","deflateEnd","deflateSetDictionary","dictionary","dictLength","tmpDict","avail","deflateInfo","sources","STR_APPLY_UIA_OK","_utf8len","m_pos","str_len","buf_len","utf16buf","c_len","buf2binstring","zstream","toString$1","Z_NO_FLUSH$1","Z_FINISH$2","Z_OK$2","Z_STREAM_END$2","Z_DEFLATED$1","Deflate$1","gzip","ended","dict","_dict_set","flush_mode","_flush_mode","onData","onEnd","inffast","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","MAXBITS","lbase","lext","dbase","dext","inftrees","lens_index","codes","table_index","work","incr","low","here_bits","here_op","here_val","curr","used","huff","base_index","offs","extra_index","Z_FINISH$1","Z_OK$1","Z_STREAM_END$1","Z_NEED_DICT$1","Z_STREAM_ERROR$1","Z_DATA_ERROR$1","Z_MEM_ERROR$1","BAD","zswap32","InflateState","havedict","flags","check","wbits","ncode","nlen","ndist","have","lendyn","distdyn","back","was","lenfix","distfix","inflateResetKeep","inflateReset","inflateReset2","inflateInit2","virgin","fixedtables","updatewindow","inflate_1$2","inflateInit","put","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","inflateEnd","inflateGetHeader","inflateSetDictionary","inflateInfo","gzheader","Inflate$1","inflate$1","inflator","last_avail_out","next_out_utf8","utf8str","inflate_1$1","Inflate","inflateRaw","ungzip","constants","inflate_1","$stringify","Primitive","known","$","firstRun","reAsciiWord","reLatin","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsLowerMisc","rsUpperMisc","rsOptLowerContr","rsOptUpperContr","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","deburrLetter","hasUnicode","stringToArray","unicodeToArray","asciiToArray","castSlice","baseSlice","upperFirst","accumulator","initAccum","arrayReduce","guard","hasUnicodeWord","unicodeWords","asciiWords","deburr","strSymbols","chr","trailing","errcode","isRetryError","temp","attempt","retried","createError","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","factorize","factors","LN10","places","eps","cont","rec","excludeWhole","whole","cycLen","cycleLen","cycOff","rem1","rem2","modpow","cycleStart","_interopRequireWildcard","_default","compareContext","keysB","bHasOwnProperty","valueA","valueB","stylis_min","J","G","ca","O","ea","fa","ha","Q","ia","ba","la","ma","na","oa","U","Err","mergeConfigs","defaultConfig","configs","formatterCache","ast","resolvedOptions","getAst","__parse","memoizedDefaultLocale","integer","percent","medium","long","getChildMapping","mapFn","Children","isValidElement","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","childMapping","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","cloneElement","TransitionGroup","_React$Component","isMounting","firstRender","componentDidMount","mounted","setState","componentWillUnmount","currentChildMapping","_this$props","childFactory","TransitionGroupContext","Ripple","_props$pulsate","pulsate","rippleX","rippleY","rippleSize","_props$onExited","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","TouchRipple","_props$center","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","cb","oldRipples","_options$pulsate","_options$center","_options$fakeElement","fakeElement","touches","sizeX","sizeY","stop","persist","animation","animationDuration","buttonRefProp","buttonRef","_props$centerRipple","_props$disableRipple","disableRipple","_props$disableTouchRi","disableTouchRipple","_props$focusRipple","focusVisibleClassName","onBlur","onFocus","onFocusVisible","onKeyUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","_props$tabIndex","TouchRippleProps","_props$type","rippleRef","focusVisible","setFocusVisible","_useIsFocusVisible","focusVisibleRef","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","buttonProps","handleUserRef","_React$useState2","mountedState","setMountedState","enableTouchRipple","textDecoration","borderStyle","colorAdjust","StrictMode","Profiler","Suspense","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","forceUpdate","isPureReactComponent","__self","__source","$$typeof","_owner","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","lazy","_payload","useDebugValue","useImperativeHandle","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","mark","awrap","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","_Buffer","ALPHABET","BASE_MAP","BASE","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","copyProps","SafeBuffer","_construct","inRange","ToDictionary","Stream","endOfStream","finished","decoderError","opt_code_point","DEFAULT_ENCODING","_streaming","_BOMseen","_decoder","_fatal","_ignoreBOM","_encoder","_options","UTF8Decoder","utf8_code_point","utf8_bytes_seen","utf8_bytes_needed","utf8_lower_boundary","utf8_upper_boundary","stream","bite","code_point","UTF8Encoder","input_stream","code_points","cp","codePointsToString","opt_string","stringToCodePoints","WebSocketBrowserImpl","_createClass2","_EventEmitter","protocols","socket","WebSocket","onopen","onmessage","onclose","optionsOrCallback","close","_regenerator","_asyncToGenerator2","_typeof2","_eventemitter","_circularJson","CommonClient","webSocketFactory","_a$autoconnect","_a$reconnect","_a$reconnect_interval","_a$max_reconnects","rest_options","rpc_id","ready","current_reconnects","_connect","ws_opts","_this2","_login","_callee","_x","_listMethods","_callee2","_context2","_this3","_callee3","_context3","_x2","_callee4","_context4","_x3","_this4","specialChar","safeSpecialChar","escapedSafeSpecialChar","specialCharRG","safeSpecialCharRG","safeStartWithSpecialCharRG","$String","regenerate","retrieve","regenerateArray","retrieveFromPath","regenerateObject","CircularJSON","doNotResolve","parser","doNotIgnore","mapp","lvl","generateReplacer","generateReviver","isUint8Array","numbers","isCompressed","toTypeString","getAssertedOutput","secp256k1","contextRandomize","privateKeyVerify","seckey","privateKeyNegate","privateKeyTweakAdd","tweak","privateKeyTweakMul","publicKeyVerify","compressed","publicKeyConvert","publicKeyNegate","publicKeyCombine","pubkeys","publicKeyTweakAdd","publicKeyTweakMul","signatureNormalize","signatureExport","outputlen","signatureImport","msg32","noncefn","ecdsaVerify","ecdsaRecover","ecdh","hashfn","xbuf","ybuf","ec","EC","ecparams","loadPublicKey","pub","loadCompressedPublicKey","loadUncompressedPublicKey","savePublicKey","bn","tweaked","keyFromPrivate","getPublic","nh","sigR","sigS","lenR","posR","lenS","posS","_noncefn","counter","canonical","pers","recoveryParam","sigObj","sigr","recoverPubKey","scalar","elliptic","eddsa","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","JPoint","zOne","betas","_getEndoRoots","lambdas","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","_endoSplit","v2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","zinv","zinv2","ay","pz2","z2","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","gamma","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","MontCurve","i4","a24","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","HmacDRBG","KeyPair","Signature","priv","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","persEnc","entropy","entropyEnc","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kpX","sinv","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","V","nonceEnc","_hmac","kmac","reseed","addEnc","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","Position","place","getLength","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","EDDSA","pointClass","encodingLength","secret","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pub","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","descriptors","formatRegExp","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","isNumber","numLinesEst","debuglog","NODE_DEBUG","pid","isNullOrUndefined","months","getHours","getMinutes","getSeconds","getDate","getMonth","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","arrayWithoutHoles","nonIterableSpread","ErrClass","RetryOperation","timeouts","forever","unref","maxRetryTime","factor","maxTimeout","randomize","createTimeout","mainError","_originalTimeouts","_timeouts","_maxRetryTime","_fn","_errors","_attempts","_operationTimeout","_operationTimeoutCb","_timeout","_operationStart","_cachedTimeouts","currentTime","timeoutOps","try","attempts","counts","mainErrorCount","Assignable","retrier","bail","onRetry","_timer","jsx","jsxs","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","pa","qa","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","$a","eb","db","fb","defaultSelected","gb","hb","ib","lb","mb","nb","ob","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","pb","nodeValue","qb","gridArea","lineClamp","sb","tb","ub","menuitem","area","br","col","embed","hr","img","keygen","link","param","track","wbr","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","memoizedState","dehydrated","ac","cc","sibling","dc","fc","gc","hc","ic","jc","kc","mc","nc","oc","pc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","bd","unstable_UserBlockingPriority","ed","gd","hd","uc","jd","kd","ld","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","ge","he","le","me","ne","oe","pe","qe","se","te","ue","ve","we","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","cf","df","capture","passive","Nb","ef","ff","parentWindow","hf","je","ke","jf","kf","lf","mf","nf","pf","qf","rf","sf","previousSibling","tf","vf","wf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ih","memoizedProps","revealOrder","jh","kh","lh","mh","oh","pendingProps","qh","uh","_workInProgressVersionPrimary","vh","Fh","Gh","Hh","baseQueue","Ih","Jh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","uk","hk","unstable_observedBits","unmount","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","postMessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","provider_logger_1","consoleWithOptionalObject","LogLocal","IdentityButton_1","IdentityButton_utils_1","styled_components_1","Button","buttonTitleStyle","buttonStyleLight","buttonTitleStyleLight","DARK","LIGHT","logEnabled","hiddenCheckEnabled","msgHeaderLen","msgIdLen","pagePosition","resetRequiredMethods","bodyScroll","documentElementScroll","settings","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","enablePublicMethods","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClosed","onInit","onMessage","onResized","onScroll","frameTimer","jQuery","iFrameResize","each","setupIFrame","factory","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","formatLogHeader","iframeId","retStr","parentIFrame","getId","getMyID","isLogEnabled","enabled","iFrameListener","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","getPaddingEnds","compStyle","getBorderEnds","borderTopWidth","borderBottomWidth","Dimension","dimension","getMsgBody","sendPageInfoToIframe","iframe","frameId","trigger","bodyPosition","iFramePosition","iframeHeight","iframeWidth","offsetLeft","pageYOffset","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","getPageInfo","getElementPosition","getPagePosition","scrollRequestFromChild","addOffset","newPosition","scrollTo","unsetPagePosition","onMouse","funcName","chkEvent","createOutgoingMsg","iFrameReadyMsgReceived","processMsg","retCode","true","false","isMessageFromMetaParent","retBool","hasSettings","checkIFrameExists","checkList","remoteHost","checkSingle","isMessageFromIFrame","closeIFrame","msgBody","setListener","sendPageInfo","stopPageInfo","startPageInfoMonitor","hashData","getElementById","getElementsByName","jumpPosition","jumpToTarget","moveToAnchor","findTarget","resetIFrame","actionMsg","retVal","removeIframeListeners","chkZero","checkIFrames","checkIFrame","settingId","chkDimension","isVisible","offsetParent","mutationObserved","mutations","debouce","createMutationObserver","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","observe","fixHiddenIFrames","processDimension","setDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","errorShown","targetOrigin","postMessageToIFrame","msgTimeout","depricate","splitName","newId","ensureHasId","checkOptions","copyOptions","processOptions","setScrolling","addStyle","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","checkReset","iFrameResizer","removeListeners","resize","sendMessage","tabVisible","sendTriggerMsg","isIFrameResizeEnabled","setupEventListeners","chkType","iFrames","vendors","setupRequestAnimationFrame","warnDeprecatedOptions","IframeResizer","iframeProps","filterIframeAttribs","iframeRef","iframeResize","PropTypes","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","getShim","isRequired","ReactPropTypes","bigint","bool","symbol","arrayOf","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","SVGClose_1","SVGLoading_1","containerStyle","containerContentStyle","containerButtonStyle","headerStyle","flexBasis","logoStyle","DefaultWrapper","alt","WrapperComp","fillStyle","xmlns","svgLoadingStyle","shimmer","Shimmer","shapeRendering","textRendering","gradientUnits","stopColor","fetch_retry_ts_1","defaultHeaders","GatekeeperClient","gatekeeperClientConfig","fetchImplementation","defaultRetryParams","numRetries","retryOn","retryDelay","TEST_RETRY_MULTIPLIER","fetchWithRetry","addQueryParams","urlForWallet","reducer_1","useGatekeeperRecord_1","useCivicPass_1","useChain_1","useRefresh_1","combineReducers","reducers","updatedState","tokenCreationInProgress","isActive","currentExpiry","approachingExpiryResult","isApproachingExpiry","actionCreator_1","usePOWO_1","useGatekeeper_1","networkConfig_1","useCivicPassEventListener_1","waitForConfirmPOWO","waitForPOWO","waitForHandleTransaction","waitForGatekeeperIssuanceRequest","waitForCivicPassRefreshResponsePayload","refreshPayload","refreshPayloadState","waitForOnChainToken","actionCreator","gatewayTokenActionCreator","waitForGatewayToken","waitForCivicPassIssuanceResponsePayload","issuancePayload","checkForRequiredProof","gatewayToken_actionCreator_1","GatewayTokenActionCreatorImplementation","isTokenPending","isFailure","pollForActiveOnChainToken","pollUntilConditionMet","pollChainIntervalMilliseconds","pollChainNumberRetries","getGatekeeperStatus","fnToRun","conditionChecker","requestGatewayTokenFromGatekeeper","requestGatewayTokenFromGatekeeperResult","Network","localConfig","defaultConfiguration","networkAddressMappings","tigoYhp9SpCDoCQmXGj2im5xa3mnjR1zuXrpCJ5ZRmi","IGNITE","tig2iQjtihM8GbWS1z5LJi9ytTkj4poeh2N3MW4n9gt","IGNITE_NFT","tniC2HX5yg2yDjMQEcUo1bHa44x9YdZVSqyKox21SDz","NILE","ignREusXmGrscGNUesoU9mxfds9AiYTezUKex2PsZV6","ign2PJfwxvYxAZpMdXgLdY4VLCnChPZWjtTeQwQfQdc","ni1jXzPTq1yTqo67tUmVgnp22b1qGAAZCtPmHtskqYG","networkConfigs","testConfig","devConfig","preprodConfig","prodConfig","stageConfigs","stageConfig","networkName","remoteSign_1","remoteSign","dispatchEvent","remoteSigner","remoteSignWindowEventEmitterImplementation","CivicSignEventTypeRequest","REQUEST_PUBLIC_KEY","sendPublicKey","REQUEST_DID","sendDid","REQUEST_SIGNED_PROOF","sendSignedProof","RemoteSignWindowEventEmitter","CivicSignEventTypeResponse","eventEmitter","targetWindow","RESPONSE_PUBLIC_KEY","did","RESPONSE_DID","RESPONSE_SIGNED_PROOF","iFrameWindow","preserveAspectRatio","fillRule","cx","cy","dur","calcMode","repeatCount","baseProfile","Badge_1","connection_1","Badge_svg_1","usePrevious","setToken","prevGKN","prevPubkey","prevClusterName","normalizedConnection","getSolanaConnection","rel","useConnection","SolanaConnectionProvider","ConnectionContext","stroke","filterUnits","stdDeviation","in2","__exportStar","chainImplementation_1","broadcastTransaction","chainImpl","walletAdapter","chainImplementation_2","defaultSigner","isKeypair","DEFAULT_CONFIG","broadcastCheck","getClusterUrl","makeTransaction","findBlock","checkRecentBlock","findTransaction","txSig","checkTransactionNotBroadcast","signedTransaction","verifyStatic","evidence","signaturePubkeyPair","checkSignatures","transferParams","SystemInstruction","checkTransactionParameters","checkTransactionNotBroadcastPromise","checkBlockPromise","MIN_SAFE_INTEGER","ListItem","_props$alignItems","_props$button","childrenProp","componentProp","_props$ContainerCompo","ContainerComponent","_props$ContainerProps","ContainerProps","ContainerClassName","_props$disableGutters","disableGutters","_props$divider","_props$selected","childContext","listItemRef","hasSecondaryAction","componentProps","secondaryAction","backgroundClip","defaultVariantMapping","_props$align","align","_props$display","_props$gutterBottom","gutterBottom","_props$noWrap","noWrap","_props$paragraph","paragraph","_props$variantMapping","variantMapping","srOnly","alignLeft","alignCenter","alignRight","alignJustify","textOverflow","whiteSpace","marginBottom","colorTextPrimary","colorTextSecondary","displayInline","displayBlock","isBrowser","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","onCreateRule","by","toCssValue","ignoreImportant","cssValue","getWhitespaceSymbols","linebreak","indentStr","indent","toCss","_options$indent","fallbacks","_getWhitespaceSymbols","_prop","_value","_prop2","_value2","allowEmpty","nativeEscape","CSS","BaseStyleRule","isProcessed","Renderer","renderer","force","onChangeValue","renderable","attached","StyleRule","_BaseStyleRule","scoped","generateId","selectorText","_proto2","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","query","RuleList","addRule","onProcessRule","newRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","ruleOptions","_this$options","register","oldRule","oldIndex","nameOrSelector","unregister","updateOne","_this$options2","onUpdate","nextValue","_nextValue","_prevValue","deployed","attach","deploy","detach","addRules","added","_this$rules","PluginsRegistry","internal","external","onProcessSheet","processedValue","newPlugin","sheets","SheetsRegistry","_temp","globalThis$1","moduleId","createGenerateId","ruleCounter","jssId","minify","cssRule","attributeStyleMap","getHead","findPrevNode","findHigherSheet","findHighestSheet","findCommentNode","_insertRule","appendRule","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","createStyle","nextNode","insertionPointElement","insertStyle","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","instanceCounter","Jss","isInBrowser","setup","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","getDynamicStyles","extracted","mergeClasses","baseClasses","newClasses","nextClasses","multiKeyStore","key2","subCache","hasSymbol","pseudoClasses","fnValuesNs","fnRuleNs","functionPlugin","fnValues","styleRule","fnRule","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","jssGlobal","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","isNested","isNestedConditional","toHyphenLower","hName","convertCase","converted","hyphenatedProp","px","addCamelCasedVersion","regExp","inset","motion","perspective","iterate","innerProp","_innerProp","defaultUnit","camelCasedOptions","js","vendor","isTouch","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","camelize","pascalize","longhand","textOrientation","writingMode","breakPropsOld","inlineLogicalOld","newProp","unprefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","propertyDetectors","computed","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","prefixedValue","supportedValue","jssVendorPrefixer","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","jssPropsSort","prop0","prop1","jssPreset","functions","vendorPrefixer","propsSort","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seedPrefix","getNextCounterId","createGenerateClassName","disableGeneration","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","increment","getStylesCreator","themingEnabled","stylesWithOverrides","noopTheme","getClasses","cacheClasses","lastProp","lastJSS","stylesCreator","sheetManager","staticSheet","dynamicStyles","serverGenerateClassName","dynamicSheet","_ref3","_ref4","useSynchronousEffect","currentKey","classNamePrefixOption","_options$defaultTheme","stylesOptions2","shouldUpdate","defaultGenerator","ClassNameGenerator","configure","createClassNameGenerator","globalStateClassesMapping","completed","expanded","focused","required","useIntl","_props$disableElevati","disableElevation","endIconProp","endIcon","startIconProp","startIcon","textPrimary","textSecondary","outlinedPrimary","outlinedSecondary","contained","containedPrimary","containedSecondary","textSizeSmall","textSizeLarge","outlinedSizeSmall","outlinedSizeLarge","containedSizeSmall","containedSizeLarge","sizeLarge","iconSizeSmall","iconSizeMedium","iconSizeLarge","makeStylesWithoutDefault","MenuItem","ListItemClasses","_props$role","tabIndexProp","colorSpace","getUtilityClass","TypographyClasses","_props$underline","underline","handlerRef","underlineNone","underlineHover","underlineAlways","GlobalStyles","processIntlConfig","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","rawValues","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","IntlProvider","prevConfig","getListUtilityClass","ListRoot","_jsxs","getPaperUtilityClass","getOverlayAlpha","PaperRoot","backgroundImage","isHostComponent","getModalUtilityClass","mountElement","currentElement","elementsToExclude","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","nodeTabIndex","tabindexAttr","getTabIndex","getRadio","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","defaultIsEnabled","getTabbable","reactFocusEventTarget","activated","lastKeydown","rootElement","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","focusNext","focusPrevious","handleFocusSentinel","ModalUnstyled","classesProp","componentsProps","onTransitionEnter","onTransitionExited","rootProps","getBackdropUtilityClass","BackdropUnstyled","BackdropRoot","_componentsProps$root","extendUtilityClasses","ModalRoot","ModalBackdrop","backdrop","commonProps","getPopoverUtilityClass","resolveAnchorEl","PopoverRoot","PopoverPaper","getMenuUtilityClass","MenuRoot","MenuPaper","MenuMenuList","isRtl","getNativeSelectUtilityClasses","nativeSelectClasses","nativeSelectSelectStyles","MozAppearance","WebkitAppearance","NativeSelectSelect","nativeSelectIconStyles","NativeSelectIcon","iconOpen","NativeSelectInput","IconComponent","inputRef","hasValue","isFilled","SSR","getSelectUtilityClasses","_span","selectClasses","SelectSelect","SelectIcon","SelectNativeInput","nativeInput","areEqualValues","SelectInput","ariaLabel","autoWidth","defaultOpen","displayEmpty","inputRefProp","labelId","MenuProps","onChange","onOpen","openProp","renderValue","SelectDisplayProps","valueProp","setValueState","openState","setOpenState","displayRef","displayNode","setDisplayNode","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleDisplayRef","isCollapsed","displaySingle","childrenArray","handleItemClick","itemIndex","clonedEvent","displayMultiple","computeDisplay","menuMinWidth","buttonId","formControlState","states","muiFormControl","FormControlContext","useFormControl","getStyleValue","TextareaAutosize","maxRows","minRows","shadowRef","renders","syncHeight","inputShallow","placeholder","singleRowHeight","outerHeight","outerHeightStyle","prevState","resizeObserver","ResizeObserver","disconnect","rows","SystemGlobalStyles","getInputBaseUtilityClass","inputBaseClasses","rootOverridesResolver","formControl","startAdornment","adornedStart","endAdornment","adornedEnd","hiddenLabel","inputOverridesResolver","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel","InputBaseRoot","InputBaseComponent","placeholderHidden","placeholderVisible","font","WebkitTextFillColor","inputGlobalStyles","InputBase","autoComplete","disableInjectingGlobalStyles","inputComponent","inputPropsProp","renderSuffix","handleInputRefWarning","handleInputPropsRefProp","handleInputRefProp","handleInputRef","setFocused","fcs","onFilled","onEmpty","checkDirty","InputComponent","setAdornedStart","Input","onAnimationStart","getInputUtilityClass","inputClasses","InputRoot","inputBaseRootOverridesResolver","disableUnderline","bottomLineColor","borderBottomStyle","InputInput","InputBaseInput","inputBaseInputOverridesResolver","componentsPropsProp","composedClasses","inputComponentsProps","getFilledInputUtilityClass","filledInputClasses","FilledInputRoot","borderTopLeftRadius","borderTopRightRadius","FilledInputInput","WebkitBoxShadow","caretColor","FilledInput","filledInputComponentsProps","NotchedOutlineRoot","borderWidth","NotchedOutlineLegend","float","withLabel","notched","getOutlinedInputUtilityClass","outlinedInputClasses","OutlinedInputRoot","notchedOutline","OutlinedInputInput","OutlinedInput","_React$Fragment","filled","_Input","_FilledInput","Select","ArrowDropDownIcon","native","variantProps","inputComponentRef","argsInput","shapeInput","defaultState","getSvgIconUtilityClass","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$transitions2$d","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_theme$palette$ownerS","_theme$palette","_theme$palette$ownerS2","_theme$palette2","_theme$palette2$actio","_theme$palette3","_theme$palette3$actio","inherit","small","large","inheritViewBox","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","initialStatus","appearStatus","mountOnEnter","nextCallback","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","maybeNode","enterTimeout","safeSetState","onTransitionEnd","cancel","nextState","setNextCallback","doesNotHaveTimeoutOrListener","maybeNextCallback","getTableRowUtilityClass","tableRowClasses","TableRowRoot","footer","TableRow","tablelvl2","getTableCellUtilityClass","tableCellClasses","TableCellRoot","stickyHeader","paddingCheckbox","TableCell","paddingProp","scopeProp","sizeProp","sortDirection","variantProp","isHeadCell","ariaSort","getTableContainerUtilityClass","TableContainerRoot","TableContainer","getTableUtilityClass","TableRoot","borderCollapse","borderSpacing","captionSide","defaultComponent","Table","getTableHeadUtilityClass","TableHeadRoot","TableHead","getTableBodyUtilityClass","TableBodyRoot","TableBody"],"mappings":"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gBAKjB,CACErsE,KAAM,SACNsb,SAAU,CACR,CACEtb,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,KACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,SACNhC,KAAM,SAIZ,CACEgC,KAAM,OACNsb,SAAU,CACR,CACEtb,KAAM,SACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,SACNhC,KAAM,SAIZ,CACEgC,KAAM,eACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,aAEF,CACEvd,KAAM,cACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,IAER,CACE7D,KAAM,gBACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,IAER,CACE7D,KAAM,cACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,IAER,CACE7D,KAAM,kBACNsb,SAAU,CACR,CACEtb,KAAM,SACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,cACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,SACNhC,KAAM,OAER,CACEgC,KAAM,WACNhC,KAAM,QAIZ,CACEgC,KAAM,iBACNsb,SAAU,CACR,CACEtb,KAAM,SACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,WACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,SACNhC,KAAM,OAER,CACEgC,KAAM,WACNhC,KAAM,QAIZ,CACEgC,KAAM,gBACNsb,SAAU,CACR,CACEtb,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,KACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,SACNhC,KAAM,OAER,CACEgC,KAAM,WACNhC,KAAM,QAIZ,CACEgC,KAAM,cACNsb,SAAU,CACR,CACEtb,KAAM,SACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,YACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,SACNhC,KAAM,OAER,CACEgC,KAAM,WACNhC,KAAM,QAIZ,CACEgC,KAAM,qBACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,YACNhC,KAAM,eAIZ,CACEgC,KAAM,aACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,cAGJ1Z,KAAM,IAER,CACE7D,KAAM,qBACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,aAEF,CACEvd,KAAM,OACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,YACNhC,KAAM,eAIZ,CACEgC,KAAM,sBACNsb,SAAU,CACR,CACEtb,KAAM,UACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,IACNhC,KAAM,QAIZ,CACEgC,KAAM,kBACNsb,SAAU,CACR,CACEtb,KAAM,OACNi3E,SACA15D,cAGJ1Z,KAAM,CACJ,CACE7D,KAAM,WACNhC,KAAM,MAER,CACEgC,KAAM,gBACNhC,KAAM,aAER,CACEgC,KAAM,kBACNhC,KAAM,CACJquE,QAAS,iBAMnB/wD,SAAU,CACR,CACEtb,KAAM,OACNhC,KAAM,CACJyW,KAAM,SACN2D,OAAQ,CACN,CACEpY,KAAM,gBACNhC,KAAM,CACJquE,QAAS,cAGb,CACErsE,KAAM,SACNhC,KAAM,OAER,CACEgC,KAAM,WACNhC,KAAM,MAER,CACEgC,KAAM,gBACNhC,KAAM,QAER,CACEgC,KAAM,kBACNhC,KAAM,CACJquE,QAAS,iBAMnB,CACErsE,KAAM,QACNhC,KAAM,CACJyW,KAAM,SACN2D,OAAQ,CACN,CACEpY,KAAM,OACNhC,KAAM,aAER,CACEgC,KAAM,YACNhC,KAAM,aAER,CACEgC,KAAM,SACNhC,KAAM,OAER,CACEgC,KAAM,WACNhC,KAAM,CACJquE,QAAS,cAGb,CACErsE,KAAM,QACNhC,KAAM,MAER,CACEgC,KAAM,WACNhC,KAAM,CACJquE,QAAS,QAGb,CACErsE,KAAM,kBACNhC,KAAM,OAER,CACEgC,KAAM,iBACNhC,KAAM,CACJquE,QAAS,mBC1rCV6O,G,WAGX1+E,WACUugC,EACAo+C,EACAxT,EACAgQ,EACAyD,EACRC,uBALQt+C,aACAo+C,iBACAxT,iBACAgQ,kBACAyD,cAGRh8E,KAAKk8E,cAAgB,IAAIC,GAAa5T,EAAW0T,G,kFAY5CtU,wFACIjoE,EAAI,EADRioE,YACWjoE,EAAIM,KAAKg8E,OAAO9/D,SAAS/Z,QADpCwlE,oBAIGyU,EAAcp8E,KAAKg8E,OAAO9/D,SAASxc,GACnC28E,EAAkB5S,IAAU2S,EAAYx7E,QAG1Cw7E,EAAYE,KAAOF,EAAYE,IAAIhkE,MAAMnW,OAAS,YAChDnC,KAAK+7E,UAAUM,IATlB1U,gCAUO3nE,KAAKu8E,gBAAgBH,GAV5BzU,6BAgBH,GACEyU,EAAYj+D,mBACZne,KAAK+7E,UAAUM,GAEfr8E,KAAK+7E,UAAUM,GAAmBr8E,KAAKuoE,UAAUb,OAAOhwD,eAK1D,OAAQ2kE,GACN,IAAK,yBACCr8E,KAAK+7E,UAAUM,KACjBr8E,KAAK+7E,UAAUM,GAAmB73D,gBAAcrM,WAEpD,IAAK,gBACCnY,KAAK+7E,UAAUM,KACjBr8E,KAAK+7E,UAAUM,GAAmBp7D,sBAEtC,IAAK,wBACCjhB,KAAK+7E,UAAUM,KACjBr8E,KAAK+7E,UAAUM,GAAmBhG,IAEtC,IAAK,kCACCr2E,KAAK+7E,UAAUM,KACjBr8E,KAAK+7E,UAAUM,GAAmB/F,IAxCrC3O,OAC4CjoE,GAAK,EADjDioE,gE,0HA8CCA,WAAsByU,GAAtBzU,yFACDyU,EAAYE,KAAQF,EAAYE,IAAIhkE,MADnCqvD,sBAEE,IAAI1hE,MAAM,mBAFZ0hE,uBAIwBvjE,QAAQqxE,IACpC2G,EAAYE,IAAIhkE,MAAMwD,KAAK0gE,mBAAsBx8E,EAAK8F,SAAS02E,OAL3D7U,cAIArvD,EAJAqvD,gBAQkB3nE,KAAKy8E,eAAeL,GARtCzU,cAQAxvD,EARAwvD,iBASiBvvD,YAAUM,mBAAmBJ,EAAOH,GATrDwvD,oCASCzpD,EATDypD,KAWN3nE,KAAK+7E,UAAUtS,IAAU2S,EAAYx7E,OAASsd,EAXxCypD,iD,0HAcAA,WAAqByU,GAArBzU,0EACN,UAAKyU,EAAYE,0BAAKnkE,UADhBwvD,yCAEG3nE,KAAKu4E,YAFR5Q,YAIEyU,EAAYE,IAAInkE,UAAU9C,KAJ5BsyD,OAKC,UALDA,OASC,QATDA,OAWC,YAXDA,gDAMK,IAAIvvD,YACTpY,KAAK08E,cAAcN,EAAYE,IAAInkE,UAAUna,SAP7C2pE,gCAUK3nE,KAAK28E,SAASP,EAAYE,IAAInkE,YAVnCwvD,uBAYW3nE,KAAK48E,aAAaR,EAAYE,IAAInkE,WAZ7CwvD,sDAcI,IAAI1hE,MAAJ,wCAC6Bm2E,EAAYE,IAAInkE,UAAU9C,OAf3DsyD,iD,oHAoBAA,WAAe6U,GAAf7U,sEACE6U,EAASnnE,KADXsyD,OAEC,UAFDA,OAIC,QAJDA,OAMC,YANDA,gDAGK3nE,KAAK08E,cAAcF,IAHxB7U,uBAKW3nE,KAAK68E,YAAYL,GAL5B7U,sEAOW3nE,KAAK88E,gBAAgBN,GAPhC7U,cASI,IAAI1hE,MAAJ,gCAAmCu2E,EAASnnE,OAThDsyD,iD,kFAaA+U,SAAcF,GACpB,OAAOx8E,KAAK+8E,cAAcP,EAAS59E,KAAM49E,EAASx+E,S,gEAG5C2pE,WAAkB6U,GAAlB7U,8EACAgV,EAAW38E,KAAK28E,SAASH,GADzB7U,kBAEC3nE,KAAK+8E,cAAcP,EAAS59E,KAAM+9E,IAFnChV,gD,6EAKAgV,SAASH,GACf,IAAMQ,EAAcvT,IAAU+S,EAASh/E,KAAKquB,MAAM,KAAK,IAEjDoxD,EAAiBj9E,KAAKg8E,OAAOv3E,KAAKub,WACrCk9D,mBAAiBA,EAAQt8E,OAASo8E,KAErC,IAAwB,IAApBC,EACF,MAAM,IAAIh3E,MAAJ,4CAA+C+2E,IAGvD,OAAOh9E,KAAK29B,MAAMs/C,K,oEAGZtV,WAAsB6U,GAAtB7U,uFACqB3nE,KAAK48E,aAAaJ,GADvC7U,cACAiV,EADAjV,yBAEC3nE,KAAK+8E,cAAcP,EAAS59E,KAAMg+E,IAFnCjV,gD,wHAKAA,WAAmB6U,GAAnB7U,gFACAwV,EAAiBX,EAASh/E,KAAKquB,MAAM,KAErC29C,EAAY2T,EAAe,GAC3BC,EAAcp9E,KAAK+7E,UAAUtS,IAAUD,IAGf,IAA1B2T,EAAeh7E,OAPbwlE,yCAQGyV,GARHzV,uBAcgB3nE,KAAKk8E,cAAcmB,aACvCb,EAASxhE,QACToiE,GAhBIzV,cAcA3sD,EAdA2sD,yBAqBa3nE,KAAKs9E,kBAAkBtiE,EAASmiE,EAAe91E,MAAM,KArBlEsgE,gD,sFAyBA2V,SAA2BtiE,EAAYxd,GAE7C,IADA,IAAI+/E,EACG//E,EAAK2E,OAAS,GACnBo7E,EAAeviE,EAAQyuD,IAAUjsE,EAAK,KACtCA,EAAOA,EAAK6J,MAAM,GAEpB,OAAOk2E,I,2BAODR,SAAcn+E,EAAoBZ,GACxC,OAAQY,GACN,IAAK,KACH,OAAOmH,EAAOgX,KAAK,CAAC/e,IACtB,IAAK,MACH,IAAIkK,EAAInC,EAAOkc,MAAM,GAErB,OADA/Z,EAAE0uC,cAAc54C,GACTkK,EACT,IAAK,MACH,IAAII,EAAMvC,EAAOkc,MAAM,GAEvB,OADA3Z,EAAIwuC,cAAc94C,GACXsK,EACT,IAAK,MACH,IAAIk1E,EAAOz3E,EAAOkc,MAAM,GAExB,OADAu7D,EAAKC,iBAAiBC,OAAO1/E,IACtBw/E,EACT,IAAK,SACH,OAAOz3E,EAAOgX,KAAK4gE,GAAY3/E,IACjC,IAAK,YACH,OAAOA,EAAM8H,WACf,QACE,GAAIlH,EAAKmC,MACP,OAAOgF,EAAOgX,KAAK/e,GAErB,MAAM,IAAIiI,MAAJ,gCAAmCrH,S,KAMpCu9E,G,WAIX/+E,WACUmrE,EACAwT,uBADAxT,iBACAwT,iBALF/7E,YAAS,IAAIkX,I,uFAQdywD,WACL/mE,EACA8W,GAFKiwD,gFAIC9uD,EAAUnB,EAAU9P,gBAC1B,IAAI5H,KAAK49E,OAAOzzD,IAAItR,GALf8uD,oBAMU,iBAAT/mE,EAND+mE,iCAOyB3nE,KAAKuoE,UAAU7mD,WAAWyc,eAClDzmB,GARDiwD,UAUmB,QAHdnlC,EAPLmlC,8BAWO,IAAI1hE,MAAJ,mCAAsC4S,IAX7C8uD,OAaKlxD,EAAO6hE,KAAQp8D,SAASrF,OAAO,QAAS2rB,EAAY/rB,MAC1DzW,KAAK49E,OAAOr0D,IAAI1Q,EAASpC,GAdxBkxD,wBAgBK3sD,EAAUhb,KAAK+7E,UAAUtS,IAAU7oE,IAAOumB,MAAMzP,GACtD1X,KAAK49E,OAAOr0D,IAAI1Q,EAASmC,GAjBxB2sD,iCAoBE3nE,KAAK49E,OAAOzzD,IAAItR,IApBlB8uD,iD,gEC9MIkW,G,0FACJ1vB,SACLka,EACAlwD,EACAizD,EACA8M,EACAH,EACA+F,EACAC,EACAC,GAeA,OAbwC,sCAAIv5E,EAAJ,yBAAIA,EAAJ,uBAC/B,IAAIw5E,GACTx5E,EACAyzE,EACAH,EACA+F,EACAC,EACA1V,EACAlwD,EACAizD,EACA4S,Q,KAOKC,G,WAQX7gF,WACUugC,EACAugD,EACAC,EACAC,EACAC,EACR9V,EACAgQ,EACAyD,EACAC,uBARQt+C,aACAugD,aACAC,aACAC,cACAC,mBAZDr+E,eAA2C,GAC5CA,wBAAyC,GACzCA,cAA0B,GAC1BA,sBAAkD,GAClDA,uBAAmD,GAczDA,KAAKs+E,kBAAoB,IAAIxC,GAC3Bn+C,EACA39B,KAAK+7E,UACLxT,EACAgQ,EACAyD,EACAC,G,4CAKG//D,SAASA,GAEd,OADAxe,OAAOoH,OAAO9E,KAAK+7E,UAAW7/D,GACvBlc,O,qBAGFuf,SAAQA,GAEb,OADAvf,KAAKu+E,SAAWv+E,KAAKu+E,SAASr0E,OAAOqV,GAC9Bvf,O,+BAGFy3E,SACLv7D,GAGA,OADAlc,KAAKw+E,mBAAqBx+E,KAAKw+E,mBAAmBt0E,OAAOgS,GAClDlc,O,6BAGFm4E,SACLsG,GAGA,OADAz+E,KAAK0+E,iBAAmB1+E,KAAK0+E,iBAAiBx0E,OAAOu0E,GAC9Cz+E,O,8BAGFo4E,SACLqG,GAGA,OADAz+E,KAAK2+E,kBAAoB3+E,KAAK2+E,kBAAkBz0E,OAAOu0E,GAChDz+E,O,wDAGF2nE,WAAU1oE,GAAV0oE,iFACC3nE,KAAKs+E,kBAAkBx6E,UADxB6jE,gCAGE3nE,KAAKo+E,OAALp+E,uBAAeA,KAAK29B,OAApB39B,QAA2B,CAChCkc,SAAUlc,KAAK+7E,UACfx8D,QAASvf,KAAKu+E,SACd9G,kBAAmBz3E,KAAKw+E,mBACxBrG,gBAAiBn4E,KAAK0+E,iBACtBtG,iBAAkBp4E,KAAK2+E,kBACvB1/E,QAASA,OATN0oE,gD,oHAaAA,WACL1oE,GADK0oE,iFAGC3nE,KAAKs+E,kBAAkBx6E,UAHxB6jE,gCAKE3nE,KAAKq+E,YAALr+E,uBAAoBA,KAAK29B,OAAzB39B,QAAgC,CACrCkc,SAAUlc,KAAK+7E,UACfx8D,QAASvf,KAAKu+E,SACd9G,kBAAmBz3E,KAAKw+E,mBACxBrG,gBAAiBn4E,KAAK0+E,iBACtBtG,iBAAkBp4E,KAAK2+E,kBACvB1/E,QAASA,OAXN0oE,gD,uHAeAA,8FACC3nE,KAAKs+E,kBAAkBx6E,UADxB6jE,gCAGE3nE,KAAKk+E,MAALl+E,uBAAcA,KAAK29B,OAAnB39B,QAA0B,CAC/Bkc,SAAUlc,KAAK+7E,UACfx8D,QAASvf,KAAKu+E,SACd9G,kBAAmBz3E,KAAKw+E,mBACxBrG,gBAAiBn4E,KAAK0+E,iBACtBtG,iBAAkBp4E,KAAK2+E,uBARpBhX,gD,sHAYAA,8FACC3nE,KAAKs+E,kBAAkBx6E,UADxB6jE,gCAGE3nE,KAAKm+E,MAALn+E,uBAAcA,KAAK29B,OAAnB39B,QAA0B,CAC/Bkc,SAAUlc,KAAK+7E,UACfx8D,QAASvf,KAAKu+E,SACd9G,kBAAmBz3E,KAAKw+E,mBACxBrG,gBAAiBn4E,KAAK0+E,iBACtBtG,iBAAkBp4E,KAAK2+E,uBARpBhX,gD,6DCzGIiX,G,WAiNXxhF,WACEotE,EACAryD,EACAkwD,EACAiQ,uBAEAngE,EAAYi9D,GAAiBj9D,GAExBkwD,IACHA,EAAWC,KAIbtoE,KAAK6zE,KAAOrJ,EACZxqE,KAAKuoE,UAAYF,EACjBroE,KAAKu4E,WAAapgE,EAClBnY,KAAK25E,OAASrB,UAAS,IAAIxJ,GAAWtE,GACtCxqE,KAAK6+E,QAAU,IAAIxE,GAAar6E,KAAKu4E,WAAYlQ,EAAUroE,KAAK25E,QAGhE,MAOEhmD,0FChQGw6B,SACLqc,EACA8N,EACAngE,EACAkwD,GAUA,IAAM9yC,EAAoB,GACpBxZ,EAAoC,GACpCY,EAAoC,GACpCmiE,EAA8B,GAC9B7zD,EAA4B,GAE5B29C,EAAYmM,GAAevK,GAE3BxvD,EAAiCwvD,EAAItuD,mGN/BtCiyC,SACLqc,EACA8N,EACAngE,EACAkwD,SAEM0W,EAA+B,GAarC,iBAXAvU,EAAItuD,yBAAUvJ,SAASm6D,YACrB,IAAMlsE,EAAO6oE,IAAUqD,EAAWlsE,MAClCm+E,EAAWn+E,GAAQ,IAAI64E,GACrBjP,EACAsC,EACA30D,EACAkwD,EACAiQ,MAIGyG,MMYoC7iE,KACxB+6D,MAAMzM,EAAK8N,EAAOngE,EAAWkwD,GAC3C,GAEC10C,4FP3BDw6B,SACLqc,EACA8N,EACAngE,EACAkwD,GAEA,YAAImC,EAAI72C,MAGR,OAAO,IAAI0kD,GAAY7N,EAAKryD,EAAWkwD,EAAUiQ,OOkB3C3kD,KAAqBsjD,MAAMzM,EAAK8N,EAAOngE,EAAWkwD,GAuCxD,OArCAmC,EAAI1vD,aAAanI,SAAyCy4D,YACxD,IAAMuN,EAASqG,GAAmB/H,MAChC7L,GACA,SAACP,EAAQ5vD,GAAT,OAAgBq9D,EAAMv8D,YAAYrF,OAAOm0D,EAAQ5vD,KACjD9C,GAEI0gE,EAASZ,GAAmBhB,MAAM7L,EAAOuN,GACzCI,EAAUjB,GAAWb,MAAM7L,EAAOyN,EAAQjQ,EAAWP,GACrD4W,4FC5CH9wB,SACLid,EACA2M,EACAnP,EACAP,EACAiQ,EACAngE,EACAqyD,GA0CA,6BAxCkC7C,mIAAUljE,EAAVkjE,yBAAUljE,EAAVkjE,eAC1B3F,EAAK+V,eAAQtzE,GADakjE,EAEhByP,GAAgBhM,EAAhBgM,UAA2B3yE,IAFXkjE,mBAEvBvoE,EAFuBuoE,uBAOjBU,EAAUyW,SAAS9c,EAAI5iE,EAAImgB,QAASngB,EAAIH,SAPvB0oE,OAO9BuX,EAP8BvX,0DAS1BkH,GAAe,eACjBp7D,QAAQC,IAAI,qBAAZD,MAIoB,QADlBukE,EAAgBrP,EAAa/9C,MAAb+9C,KAAwBC,IAbdjB,0CAiBxBqQ,EAjBwBrQ,gBAmBhC,IAAIuX,EAnB4BvX,uBAoBxB,IAAI1hE,MAAM,kCApBc0hE,YAsB5BuX,EAAKlhF,MAAM4G,IAtBiB+iE,uBAuBxB,IAAI1hE,MAAJ,0BAA6Bi5E,EAAKlhF,MAAM4G,IAAIgD,aAvBpB+/D,WAyB1Bt4C,EAAO6vD,EAAKlhF,MAAMqxB,KAzBQs4C,uBA2BxB,IAAI1hE,MAAM,4BA3Bc0hE,eA8B1BmG,EAA2C,GA9BjBnG,mBA+B5B6C,EAAIsD,QACO,IAAIyM,GAAYpiE,EAAWmgE,GACjCsC,UAAUvrD,GAAO0+C,YACtBD,EAAOtmE,KAAKumE,MAGT,CAAED,SAAQlrB,IAAKvzB,KArCUs4C,6DDmC1BsX,KAA+BhI,MACnC7L,EACAyN,EACAjQ,EACAP,EACAiQ,EACAngE,EACAqyD,GAEI2U,EAAatB,GAAsB5G,MACvC5O,EACAlwD,EACAizD,EACAuN,EACAE,EACAE,EACAkG,EACAjkE,GAGIpa,EAAO6oE,IAAU2B,EAAMxqE,MAE7Bmb,EAAYnb,GAAQ+3E,EACpBh8D,EAAY/b,GAAQi4E,EACpBtjD,EAAI30B,GAAQm4E,EACZ+F,EAASl+E,GAAQq+E,EACjBh0D,EAAQrqB,GAAQu+E,KAGX,CACL5pD,EACAxZ,EACAY,EACA3B,EACA8jE,EACA7zD,EACA0I,ODwLAA,KACmBsjD,MAAMzM,EAAKxqE,KAAK25E,OAAQxhE,EAAWkwD,GARxD,mBACE9yC,EADF,KAEExZ,EAFF,KAGEY,EAHF,KAIE3B,EAJF,KAKE8jE,EALF,KAME7zD,EANF,KAOE0I,EAPF,KASA3zB,KAAKu1B,IAAMA,EACXv1B,KAAK+b,YAAcA,EACnB/b,KAAK2c,YAAcA,EACnB3c,KAAKgb,QAAUA,EACfhb,KAAK8+E,SAAWA,EAChB9+E,KAAKirB,QAAUA,EACfjrB,KAAK2zB,MAAQA,E,2CA3EJxb,WACT,OAAOnY,KAAKu4E,a,eAOH/N,WACT,OAAOxqE,KAAK6zE,O,iBAOHyE,WACT,OAAOt4E,KAAK25E,S,oBAOHtR,WACT,OAAOroE,KAAKuoE,Y,8BA8GPz6C,SACLugD,EACAvjD,GAEA,OAAO9qB,KAAK6+E,QAAQ/wD,iBAAiBugD,EAAWvjD,K,wEAM3C68C,WAA0B0R,GAA1B1R,iFACQ3nE,KAAK6+E,QAAQ5wD,oBAAoBorD,GADzC1R,wF,gHA1DAxZ,WACLt1C,EACAwvD,GAFKla,gFAICh2C,EAAYi9D,GAAiBv8D,GAJ9Bs1C,SAMaywB,EAAQQ,SAAcjnE,EAAWkwD,GAN9Cla,UAMCqc,EANDrc,6BAQG,IAAIloD,MAAJ,qCAAwC4S,EAAQjR,aARnDumD,gCAWE,IAAIywB,EAAQpU,EAAKryD,EAAWkwD,IAX9Bla,2C,sHAuBAA,WACLt1C,EACAwvD,GAFKla,wFAILka,EAAWA,UAAYC,IACjBnwD,EAAYi9D,GAAiBv8D,GAL9Bs1C,SXhLFwZ,kDAA0BxvD,GAA1BwvD,uFACevvD,YAAUM,mBAAmB,GAAIP,GADhDwvD,cACCniD,EADDmiD,OAC4D,GAD5DA,SAEQvvD,YAAUJ,eAAewN,EAK/B,aAL6CrN,GAF/CwvD,yIWuL8BxvD,GAP5Bg2C,cAOCkxB,EAPDlxB,gBAQqBka,EAAS3mD,WAAWyc,eAAekhD,GARxDlxB,UAQC3rB,EARD2rB,iDAUI,MAVJA,eX3JwB13C,EWwKK+rB,EAAY/rB,KAAKpP,MAAM,GAArDylE,EXvKCqK,GAAmBtgE,OADKJ,GWyKvB6oE,EAAcC,YAAQzS,EAAWr2D,MAdlC03C,kBAeElwD,KAAK2sB,MAAM40D,GAAYF,KAfzBnxB,4C,8HGxUT,+MAIO,SAAStR,EAAYh9C,EAAO4/E,EAAWC,GAE1C,YADiB,IAAbA,IAAuBA,EAAW,IAC/BD,EAAU5jC,QAAO,SAAUkuB,EAAUnpE,GAOxC,OANIA,KAAQf,EACRkqE,EAASnpE,GAAQf,EAAMe,GAElBA,KAAQ8+E,IACb3V,EAASnpE,GAAQ8+E,EAAS9+E,IAEvBmpE,IACR,IAEP,IAMW4V,EAAsB,CAC7BC,QAAS,GACTC,SAAU,GACVC,cAAUzhF,EACV0hF,cAAe,KACfC,eAAgB,GAChBC,uBAAuB,EACvBC,QAbsB,SAAUz/E,GAE5BoiD,IAaD,SAASs9B,IACZ,MAAO,CACHC,SAAU,GACV1+E,OAAQ,GACRhD,QAAS,GACT2hF,aAAc,GACdC,YAAa,GACb7sC,KAAM,GACN8sC,aAAc,IAGtB,SAASC,EAAuBC,GAC5B,MAAO,CACHrgF,OAAQ,WACJ,MAAO,CACH+pB,IAAK,SAAUrrB,GACX,OAAO2hF,EAAM3hF,IAEjByqB,IAAK,SAAUzqB,EAAKd,GAChByiF,EAAM3hF,GAAOd,MAU1B,SAAS0iF,EAAiB19B,QACf,IAAVA,IAAoBA,EA7BjB,CACHo9B,SAAU,GACV1+E,OAAQ,GACRhD,QAAS,GACT2hF,aAAc,GACdC,YAAa,GACb7sC,KAAM,GACN8sC,aAAc,KAuBlB,IAAII,EAAqBC,KAAKD,mBAC1BE,EAAaD,KAAKC,WAClBC,EAAeF,KAAKE,aACpBC,EAAoB1/B,aAAQ,WAG5B,IAFA,IAAIirB,EACA7nE,EAAO,GACF2zC,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC3zC,EAAK2zC,GAAM1zC,UAAU0zC,GAEzB,OAAO,KAAMk0B,EAAKsU,KAAKI,gBAAgBr8B,KAAKhgD,MAAM2nE,EAAI/yB,YAAc,MAAC,GAAS90C,GAAM,OACrF,CACCu+C,MAAOw9B,EAAuBx9B,EAAMo9B,UACpCa,SAAUC,IAAWC,WAErBC,EAAkB//B,aAAQ,WAG1B,IAFA,IAAIirB,EACA7nE,EAAO,GACF2zC,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC3zC,EAAK2zC,GAAM1zC,UAAU0zC,GAEzB,OAAO,KAAMk0B,EAAKsU,KAAKS,cAAc18B,KAAKhgD,MAAM2nE,EAAI/yB,YAAc,MAAC,GAAS90C,GAAM,OACnF,CACCu+C,MAAOw9B,EAAuBx9B,EAAMthD,QACpCu/E,SAAUC,IAAWC,WAErBG,EAAiBjgC,aAAQ,WAGzB,IAFA,IAAIirB,EACA7nE,EAAO,GACF2zC,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC3zC,EAAK2zC,GAAM1zC,UAAU0zC,GAEzB,OAAO,KAAMk0B,EAAKsU,KAAKW,aAAa58B,KAAKhgD,MAAM2nE,EAAI/yB,YAAc,MAAC,GAAS90C,GAAM,OAClF,CACCu+C,MAAOw9B,EAAuBx9B,EAAMs9B,aACpCW,SAAUC,IAAWC,WAEzB,MAAO,CACHJ,kBAAmBA,EACnBK,gBAAiBA,EACjBI,iBAAkBngC,aAAQ,SAAU3iD,EAAS+iF,EAASC,EAAiBpkE,GACnE,OAAO,IAAIqkE,IAAkBjjF,EAAS+iF,EAASC,EAAiB7oC,YAAS,CAAE+oC,WAAY,CAC/ER,gBAAiBA,EACjBL,kBAAmBA,EACnBO,eAAgBA,IACdhkE,GAAQ,OACnB,CACC0lC,MAAOw9B,EAAuBx9B,EAAMtkD,SACpCuiF,SAAUC,IAAWC,WAEzBU,sBAAuBxgC,aAAQ,WAE3B,IADA,IAAI58C,EAAO,GACF2zC,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC3zC,EAAK2zC,GAAM1zC,UAAU0zC,GAEzB,OAAO,IAAKuoC,EAAmBh8B,KAAKhgD,MAAMg8E,EAAoBpnC,YAAc,MAAC,GAAS90C,GAAM,OAC7F,CACCu+C,MAAOw9B,EAAuBx9B,EAAMq9B,cACpCY,SAAUC,IAAWC,WAEzBG,eAAgBA,EAChBQ,cAAezgC,aAAQ,WAEnB,IADA,IAAI58C,EAAO,GACF2zC,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC3zC,EAAK2zC,GAAM1zC,UAAU0zC,GAEzB,OAAO,IAAKyoC,EAAWl8B,KAAKhgD,MAAMk8E,EAAYtnC,YAAc,MAAC,GAAS90C,GAAM,OAC7E,CACCu+C,MAAOw9B,EAAuBx9B,EAAMvP,MACpCwtC,SAAUC,IAAWC,WAEzBY,gBAAiB1gC,aAAQ,WAErB,IADA,IAAI58C,EAAO,GACF2zC,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC3zC,EAAK2zC,GAAM1zC,UAAU0zC,GAEzB,OAAO,IAAK0oC,EAAan8B,KAAKhgD,MAAMm8E,EAAcvnC,YAAc,MAAC,GAAS90C,GAAM,OACjF,CACCu+C,MAAOw9B,EAAuBx9B,EAAMu9B,cACpCU,SAAUC,IAAWC,YAI1B,SAASa,EAAepC,EAAShhF,EAAMgC,EAAMs/E,GAChD,IACIjV,EADAgX,EAAarC,GAAWA,EAAQhhF,GAKpC,GAHIqjF,IACAhX,EAASgX,EAAWrhF,IAEpBqqE,EACA,OAAOA,EAEXiV,EAAQ,IAAItsB,IAA0B,MAAM1pD,OAAOtL,EAAM,mBAAmBsL,OAAOtJ,O,iBCzJvF,sBAAWmC,EAAQC,GACjB,aAGA,SAAS7C,EAAQ6F,EAAKvI,GACpB,IAAKuI,EAAK,MAAM,IAAIC,MAAMxI,GAAO,oBAKnC,SAASiJ,EAAUL,EAAMC,GACvBD,EAAKE,OAASD,EACd,IAAIE,EAAW,aACfA,EAASrD,UAAYmD,EAAUnD,UAC/BkD,EAAKlD,UAAY,IAAIqD,EACrBH,EAAKlD,UAAU/F,YAAciJ,EAK/B,SAASkuE,EAAI7yE,EAAQ8jB,EAAM3d,GACzB,GAAI0sE,EAAG2N,KAAKxgF,GACV,OAAOA,EAGT1B,KAAKmiF,SAAW,EAChBniF,KAAKoiF,MAAQ,KACbpiF,KAAKmC,OAAS,EAGdnC,KAAKqiF,IAAM,KAEI,OAAX3gF,IACW,OAAT8jB,GAA0B,OAATA,IACnB3d,EAAS2d,EACTA,EAAO,IAGTxlB,KAAKqR,MAAM3P,GAAU,EAAG8jB,GAAQ,GAAI3d,GAAU,OAYlD,IAAI9B,EATkB,kBAAXhD,EACTA,EAAOC,QAAUuxE,EAEjBvxE,EAAQuxE,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAG+N,SAAW,GAGd,IAEIv8E,EADoB,qBAAXw8E,QAAmD,qBAAlBA,OAAOx8E,OACxCw8E,OAAOx8E,OAEP9C,EAAQ,KAAU8C,OAE7B,MAAOsC,IAgIT,SAASm6E,EAAexgF,EAAQmZ,GAC9B,IAAIxT,EAAI3F,EAAO6E,WAAWsU,GAE1B,OAAIxT,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEXxH,GAAO,EAAO,wBAA0B6B,GAI5C,SAASygF,EAAczgF,EAAQ0gF,EAAYvnE,GACzC,IAAInc,EAAIwjF,EAAcxgF,EAAQmZ,GAI9B,OAHIA,EAAQ,GAAKunE,IACf1jF,GAAKwjF,EAAcxgF,EAAQmZ,EAAQ,IAAM,GAEpCnc,EA8CT,SAAS2jF,EAAWtoE,EAAKvS,EAAOC,EAAKutC,GAInC,IAHA,IAAIt2C,EAAI,EACJkJ,EAAI,EACJF,EAAM5F,KAAK8vC,IAAI73B,EAAIlY,OAAQ4F,GACtB9G,EAAI6G,EAAO7G,EAAI+G,EAAK/G,IAAK,CAChC,IAAI0G,EAAI0S,EAAIxT,WAAW5F,GAAK,GAE5BjC,GAAKs2C,EAIHptC,EADEP,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAENxH,EAAOwH,GAAK,GAAKO,EAAIotC,EAAK,qBAC1Bt2C,GAAKkJ,EAEP,OAAOlJ,EA4DT,SAAS4jF,EAAM9S,EAAM73B,GACnB63B,EAAKsS,MAAQnqC,EAAImqC,MACjBtS,EAAK3tE,OAAS81C,EAAI91C,OAClB2tE,EAAKqS,SAAWlqC,EAAIkqC,SACpBrS,EAAKuS,IAAMpqC,EAAIoqC,IAsCjB,GA9TA9N,EAAG2N,KAAO,SAAe74E,GACvB,OAAIA,aAAekrE,GAIJ,OAARlrE,GAA+B,kBAARA,GAC5BA,EAAIjM,YAAYklF,WAAa/N,EAAG+N,UAAYjjF,MAAM+H,QAAQiC,EAAI+4E,QAGlE7N,EAAGzgC,IAAM,SAAc+uC,EAAMC,GAC3B,OAAID,EAAKxkC,IAAIykC,GAAS,EAAUD,EACzBC,GAGTvO,EAAGriC,IAAM,SAAc2wC,EAAMC,GAC3B,OAAID,EAAKxkC,IAAIykC,GAAS,EAAUD,EACzBC,GAGTvO,EAAGpxE,UAAUkO,MAAQ,SAAe3P,EAAQ8jB,EAAM3d,GAChD,GAAsB,kBAAXnG,EACT,OAAO1B,KAAK+iF,YAAYrhF,EAAQ8jB,EAAM3d,GAGxC,GAAsB,kBAAXnG,EACT,OAAO1B,KAAKgjF,WAAWthF,EAAQ8jB,EAAM3d,GAG1B,QAAT2d,IACFA,EAAO,IAETrlB,EAAOqlB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAI1d,EAAQ,EACM,OAFlBpG,EAASA,EAAOkG,WAAWL,QAAQ,OAAQ,KAEhC,KACTO,IACA9H,KAAKmiF,SAAW,GAGdr6E,EAAQpG,EAAOS,SACJ,KAATqjB,EACFxlB,KAAKijF,UAAUvhF,EAAQoG,EAAOD,IAE9B7H,KAAKkjF,WAAWxhF,EAAQ8jB,EAAM1d,GACf,OAAXD,GACF7H,KAAKgjF,WAAWhjF,KAAKiK,UAAWub,EAAM3d,MAM9C0sE,EAAGpxE,UAAU4/E,YAAc,SAAsBrhF,EAAQ8jB,EAAM3d,GACzDnG,EAAS,IACX1B,KAAKmiF,SAAW,EAChBzgF,GAAUA,GAERA,EAAS,UACX1B,KAAKoiF,MAAQ,CAAU,SAAT1gF,GACd1B,KAAKmC,OAAS,GACLT,EAAS,kBAClB1B,KAAKoiF,MAAQ,CACF,SAAT1gF,EACCA,EAAS,SAAa,UAEzB1B,KAAKmC,OAAS,IAEdhC,EAAOuB,EAAS,kBAChB1B,KAAKoiF,MAAQ,CACF,SAAT1gF,EACCA,EAAS,SAAa,SACvB,GAEF1B,KAAKmC,OAAS,GAGD,OAAX0F,GAGJ7H,KAAKgjF,WAAWhjF,KAAKiK,UAAWub,EAAM3d,IAGxC0sE,EAAGpxE,UAAU6/E,WAAa,SAAqBthF,EAAQ8jB,EAAM3d,GAG3D,GADA1H,EAAgC,kBAAlBuB,EAAOS,QACjBT,EAAOS,QAAU,EAGnB,OAFAnC,KAAKoiF,MAAQ,CAAC,GACdpiF,KAAKmC,OAAS,EACPnC,KAGTA,KAAKmC,OAASC,KAAKozE,KAAK9zE,EAAOS,OAAS,GACxCnC,KAAKoiF,MAAQ,IAAI/iF,MAAMW,KAAKmC,QAC5B,IAAK,IAAIlB,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAC/BjB,KAAKoiF,MAAMnhF,GAAK,EAGlB,IAAI+O,EAAGjJ,EACHqL,EAAM,EACV,GAAe,OAAXvK,EACF,IAAK5G,EAAIS,EAAOS,OAAS,EAAG6N,EAAI,EAAG/O,GAAK,EAAGA,GAAK,EAC9C8F,EAAIrF,EAAOT,GAAMS,EAAOT,EAAI,IAAM,EAAMS,EAAOT,EAAI,IAAM,GACzDjB,KAAKoiF,MAAMpyE,IAAOjJ,GAAKqL,EAAO,SAC9BpS,KAAKoiF,MAAMpyE,EAAI,GAAMjJ,IAAO,GAAKqL,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPpC,UAGC,GAAe,OAAXnI,EACT,IAAK5G,EAAI,EAAG+O,EAAI,EAAG/O,EAAIS,EAAOS,OAAQlB,GAAK,EACzC8F,EAAIrF,EAAOT,GAAMS,EAAOT,EAAI,IAAM,EAAMS,EAAOT,EAAI,IAAM,GACzDjB,KAAKoiF,MAAMpyE,IAAOjJ,GAAKqL,EAAO,SAC9BpS,KAAKoiF,MAAMpyE,EAAI,GAAMjJ,IAAO,GAAKqL,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPpC,KAIN,OAAOhQ,KAAKmjF,UA2Bd5O,EAAGpxE,UAAU8/E,UAAY,SAAoBvhF,EAAQoG,EAAOD,GAE1D7H,KAAKmC,OAASC,KAAKozE,MAAM9zE,EAAOS,OAAS2F,GAAS,GAClD9H,KAAKoiF,MAAQ,IAAI/iF,MAAMW,KAAKmC,QAC5B,IAAK,IAAIlB,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAC/BjB,KAAKoiF,MAAMnhF,GAAK,EAIlB,IAGI8F,EAHAqL,EAAM,EACNpC,EAAI,EAGR,GAAe,OAAXnI,EACF,IAAK5G,EAAIS,EAAOS,OAAS,EAAGlB,GAAK6G,EAAO7G,GAAK,EAC3C8F,EAAI07E,EAAa/gF,EAAQoG,EAAO7G,IAAMmR,EACtCpS,KAAKoiF,MAAMpyE,IAAU,SAAJjJ,EACbqL,GAAO,IACTA,GAAO,GACPpC,GAAK,EACLhQ,KAAKoiF,MAAMpyE,IAAMjJ,IAAM,IAEvBqL,GAAO,OAKX,IAAKnR,GADaS,EAAOS,OAAS2F,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO7G,EAAIS,EAAOS,OAAQlB,GAAK,EAC1E8F,EAAI07E,EAAa/gF,EAAQoG,EAAO7G,IAAMmR,EACtCpS,KAAKoiF,MAAMpyE,IAAU,SAAJjJ,EACbqL,GAAO,IACTA,GAAO,GACPpC,GAAK,EACLhQ,KAAKoiF,MAAMpyE,IAAMjJ,IAAM,IAEvBqL,GAAO,EAKbpS,KAAKmjF,UA8BP5O,EAAGpxE,UAAU+/E,WAAa,SAAqBxhF,EAAQ8jB,EAAM1d,GAE3D9H,KAAKoiF,MAAQ,CAAC,GACdpiF,KAAKmC,OAAS,EAGd,IAAK,IAAIihF,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAW79D,EAClE49D,IAEFA,IACAC,EAAWA,EAAU79D,EAAQ,EAO7B,IALA,IAAI+M,EAAQ7wB,EAAOS,OAAS2F,EACxB+3C,EAAMttB,EAAQ6wD,EACdr7E,EAAM3F,KAAK8vC,IAAI3f,EAAOA,EAAQstB,GAAO/3C,EAErCb,EAAO,EACFhG,EAAI6G,EAAO7G,EAAI8G,EAAK9G,GAAKmiF,EAChCn8E,EAAO07E,EAAUjhF,EAAQT,EAAGA,EAAImiF,EAAS59D,GAEzCxlB,KAAKsjF,MAAMD,GACPrjF,KAAKoiF,MAAM,GAAKn7E,EAAO,SACzBjH,KAAKoiF,MAAM,IAAMn7E,EAEjBjH,KAAKujF,OAAOt8E,GAIhB,GAAY,IAAR44C,EAAW,CACb,IAAIhK,EAAM,EAGV,IAFA5uC,EAAO07E,EAAUjhF,EAAQT,EAAGS,EAAOS,OAAQqjB,GAEtCvkB,EAAI,EAAGA,EAAI4+C,EAAK5+C,IACnB40C,GAAOrwB,EAGTxlB,KAAKsjF,MAAMztC,GACP71C,KAAKoiF,MAAM,GAAKn7E,EAAO,SACzBjH,KAAKoiF,MAAM,IAAMn7E,EAEjBjH,KAAKujF,OAAOt8E,GAIhBjH,KAAKmjF,UAGP5O,EAAGpxE,UAAUwsC,KAAO,SAAemgC,GACjCA,EAAKsS,MAAQ,IAAI/iF,MAAMW,KAAKmC,QAC5B,IAAK,IAAIlB,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAC/B6uE,EAAKsS,MAAMnhF,GAAKjB,KAAKoiF,MAAMnhF,GAE7B6uE,EAAK3tE,OAASnC,KAAKmC,OACnB2tE,EAAKqS,SAAWniF,KAAKmiF,SACrBrS,EAAKuS,IAAMriF,KAAKqiF,KAUlB9N,EAAGpxE,UAAUqgF,MAAQ,SAAgB1T,GACnC8S,EAAK9S,EAAM9vE,OAGbu0E,EAAGpxE,UAAUopB,MAAQ,WACnB,IAAIvtB,EAAI,IAAIu1E,EAAG,MAEf,OADAv0E,KAAK2vC,KAAK3wC,GACHA,GAGTu1E,EAAGpxE,UAAUsgF,QAAU,SAAkBlpE,GACvC,KAAOva,KAAKmC,OAASoY,GACnBva,KAAKoiF,MAAMpiF,KAAKmC,UAAY,EAE9B,OAAOnC,MAITu0E,EAAGpxE,UAAUggF,OAAS,WACpB,KAAOnjF,KAAKmC,OAAS,GAAqC,IAAhCnC,KAAKoiF,MAAMpiF,KAAKmC,OAAS,IACjDnC,KAAKmC,SAEP,OAAOnC,KAAK0jF,aAGdnP,EAAGpxE,UAAUugF,UAAY,WAKvB,OAHoB,IAAhB1jF,KAAKmC,QAAkC,IAAlBnC,KAAKoiF,MAAM,KAClCpiF,KAAKmiF,SAAW,GAEXniF,MAKa,qBAAXjB,QAAgD,oBAAfA,OAAO4kF,IACjD,IACEpP,EAAGpxE,UAAUpE,OAAO4kF,IAAI,+BAAiC9vC,EACzD,MAAOxrC,GACPksE,EAAGpxE,UAAU0wC,QAAUA,OAGzB0gC,EAAGpxE,UAAU0wC,QAAUA,EAGzB,SAASA,IACP,OAAQ7zC,KAAKqiF,IAAM,UAAY,SAAWriF,KAAK4H,SAAS,IAAM,IAiChE,IAAIg8E,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9DvP,EAAGpxE,UAAUyE,SAAW,SAAmB4d,EAAM+hB,GAI/C,IAAIgN,EACJ,GAHAhN,EAAoB,EAAVA,GAAe,EAGZ,MAJb/hB,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC+uB,EAAM,GAGN,IAFA,IAAIniC,EAAM,EACNlJ,EAAQ,EACHjI,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAAK,CACpC,IAAI8F,EAAI/G,KAAKoiF,MAAMnhF,GACfgG,GAA+B,UAArBF,GAAKqL,EAAOlJ,IAAmBtB,SAAS,IAGpD2sC,EADY,KADdrrC,EAASnC,IAAO,GAAKqL,EAAQ,WACVnR,IAAMjB,KAAKmC,OAAS,EAC/ByhF,EAAM,EAAI38E,EAAK9E,QAAU8E,EAAOstC,EAEhCttC,EAAOstC,GAEfniC,GAAO,IACI,KACTA,GAAO,GACPnR,KAMJ,IAHc,IAAViI,IACFqrC,EAAMrrC,EAAMtB,SAAS,IAAM2sC,GAEtBA,EAAIpyC,OAASolC,IAAY,GAC9BgN,EAAM,IAAMA,EAKd,OAHsB,IAAlBv0C,KAAKmiF,WACP5tC,EAAM,IAAMA,GAEPA,EAGT,GAAI/uB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAIu+D,EAAYF,EAAWr+D,GAEvBw+D,EAAYF,EAAWt+D,GAC3B+uB,EAAM,GACN,IAAI5sC,EAAI3H,KAAKusB,QAEb,IADA5kB,EAAEw6E,SAAW,GACLx6E,EAAEs8E,UAAU,CAClB,IAAIjlF,EAAI2I,EAAEu8E,MAAMF,GAAWp8E,SAAS4d,GAMlC+uB,GALF5sC,EAAIA,EAAEw8E,MAAMH,IAELC,SAGCjlF,EAAIu1C,EAFJqvC,EAAMG,EAAY/kF,EAAEmD,QAAUnD,EAAIu1C,EAQ5C,IAHIv0C,KAAKikF,WACP1vC,EAAM,IAAMA,GAEPA,EAAIpyC,OAASolC,IAAY,GAC9BgN,EAAM,IAAMA,EAKd,OAHsB,IAAlBv0C,KAAKmiF,WACP5tC,EAAM,IAAMA,GAEPA,EAGTp0C,GAAO,EAAO,oCAGhBo0E,EAAGpxE,UAAUq9C,SAAW,WACtB,IAAIlM,EAAMt0C,KAAKoiF,MAAM,GASrB,OARoB,IAAhBpiF,KAAKmC,OACPmyC,GAAuB,SAAhBt0C,KAAKoiF,MAAM,GACO,IAAhBpiF,KAAKmC,QAAkC,IAAlBnC,KAAKoiF,MAAM,GAEzC9tC,GAAO,iBAAoC,SAAhBt0C,KAAKoiF,MAAM,GAC7BpiF,KAAKmC,OAAS,GACvBhC,GAAO,EAAO,8CAEU,IAAlBH,KAAKmiF,UAAmB7tC,EAAMA,GAGxCigC,EAAGpxE,UAAUyU,OAAS,WACpB,OAAO5X,KAAK4H,SAAS,GAAI,IAGvB7B,IACFwuE,EAAGpxE,UAAU2C,SAAW,SAAmB+B,EAAQ1F,GACjD,OAAOnC,KAAK8X,YAAY/R,EAAQ8B,EAAQ1F,KAI5CoyE,EAAGpxE,UAAU8G,QAAU,SAAkBpC,EAAQ1F,GAC/C,OAAOnC,KAAK8X,YAAYzY,MAAOwI,EAAQ1F,IA4gBzC,SAASiiF,EAAY5/E,EAAM6E,EAAKkrC,GAC9BA,EAAI4tC,SAAW94E,EAAI84E,SAAW39E,EAAK29E,SACnC,IAAIn6E,EAAOxD,EAAKrC,OAASkH,EAAIlH,OAAU,EACvCoyC,EAAIpyC,OAAS6F,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIG,EAAoB,EAAhB3D,EAAK49E,MAAM,GACfl6E,EAAmB,EAAfmB,EAAI+4E,MAAM,GACdpjF,EAAImJ,EAAID,EAERS,EAAS,SAAJ3J,EACLkK,EAASlK,EAAI,SAAa,EAC9Bu1C,EAAI6tC,MAAM,GAAKz5E,EAEf,IAAK,IAAIjJ,EAAI,EAAGA,EAAIsI,EAAKtI,IAAK,CAM5B,IAHA,IAAI2kF,EAASn7E,IAAU,GACnBo7E,EAAgB,SAARp7E,EACRq7E,EAAOniF,KAAK8vC,IAAIxyC,EAAG2J,EAAIlH,OAAS,GAC3B6N,EAAI5N,KAAK0xC,IAAI,EAAGp0C,EAAI8E,EAAKrC,OAAS,GAAI6N,GAAKu0E,EAAMv0E,IAAK,CAC7D,IAAI/O,EAAKvB,EAAIsQ,EAAK,EAIlBq0E,IADArlF,GAFAmJ,EAAoB,EAAhB3D,EAAK49E,MAAMnhF,KACfiH,EAAmB,EAAfmB,EAAI+4E,MAAMpyE,IACFs0E,GACG,SAAa,EAC5BA,EAAY,SAAJtlF,EAEVu1C,EAAI6tC,MAAM1iF,GAAa,EAAR4kF,EACfp7E,EAAiB,EAATm7E,EAQV,OANc,IAAVn7E,EACFqrC,EAAI6tC,MAAM1iF,GAAa,EAARwJ,EAEfqrC,EAAIpyC,SAGCoyC,EAAI4uC,SAxiBb5O,EAAGpxE,UAAU2U,YAAc,SAAsB0sE,EAAW38E,EAAQ1F,GAClEnC,KAAKmjF,SAEL,IAAI75D,EAAatpB,KAAKspB,aAClBm7D,EAAYtiF,GAAUC,KAAK0xC,IAAI,EAAGxqB,GACtCnpB,EAAOmpB,GAAcm7D,EAAW,yCAChCtkF,EAAOskF,EAAY,EAAG,+BAEtB,IAAIn9E,EAfS,SAAmBk9E,EAAWjqE,GAC3C,OAAIiqE,EAAUv1C,YACLu1C,EAAUv1C,YAAY10B,GAExB,IAAIiqE,EAAUjqE,GAWX0L,CAASu+D,EAAWC,GAG9B,OADAzkF,KAAK,gBADoB,OAAX6H,EAAkB,KAAO,OACRP,EAAKgiB,GAC7BhiB,GAGTitE,EAAGpxE,UAAUuhF,eAAiB,SAAyBp9E,EAAKgiB,GAI1D,IAHA,IAAIq7D,EAAW,EACXz7E,EAAQ,EAEHjI,EAAI,EAAGknB,EAAQ,EAAGlnB,EAAIjB,KAAKmC,OAAQlB,IAAK,CAC/C,IAAIgG,EAAQjH,KAAKoiF,MAAMnhF,IAAMknB,EAASjf,EAEtC5B,EAAIq9E,KAAqB,IAAP19E,EACd09E,EAAWr9E,EAAInF,SACjBmF,EAAIq9E,KAAe19E,GAAQ,EAAK,KAE9B09E,EAAWr9E,EAAInF,SACjBmF,EAAIq9E,KAAe19E,GAAQ,GAAM,KAGrB,IAAVkhB,GACEw8D,EAAWr9E,EAAInF,SACjBmF,EAAIq9E,KAAe19E,GAAQ,GAAM,KAEnCiC,EAAQ,EACRif,EAAQ,IAERjf,EAAQjC,IAAS,GACjBkhB,GAAS,GAIb,GAAIw8D,EAAWr9E,EAAInF,OAGjB,IAFAmF,EAAIq9E,KAAcz7E,EAEXy7E,EAAWr9E,EAAInF,QACpBmF,EAAIq9E,KAAc,GAKxBpQ,EAAGpxE,UAAUyhF,eAAiB,SAAyBt9E,EAAKgiB,GAI1D,IAHA,IAAIq7D,EAAWr9E,EAAInF,OAAS,EACxB+G,EAAQ,EAEHjI,EAAI,EAAGknB,EAAQ,EAAGlnB,EAAIjB,KAAKmC,OAAQlB,IAAK,CAC/C,IAAIgG,EAAQjH,KAAKoiF,MAAMnhF,IAAMknB,EAASjf,EAEtC5B,EAAIq9E,KAAqB,IAAP19E,EACd09E,GAAY,IACdr9E,EAAIq9E,KAAe19E,GAAQ,EAAK,KAE9B09E,GAAY,IACdr9E,EAAIq9E,KAAe19E,GAAQ,GAAM,KAGrB,IAAVkhB,GACEw8D,GAAY,IACdr9E,EAAIq9E,KAAe19E,GAAQ,GAAM,KAEnCiC,EAAQ,EACRif,EAAQ,IAERjf,EAAQjC,IAAS,GACjBkhB,GAAS,GAIb,GAAIw8D,GAAY,EAGd,IAFAr9E,EAAIq9E,KAAcz7E,EAEXy7E,GAAY,GACjBr9E,EAAIq9E,KAAc,GAKpBviF,KAAKyiF,MACPtQ,EAAGpxE,UAAU2hF,WAAa,SAAqB/9E,GAC7C,OAAO,GAAK3E,KAAKyiF,MAAM99E,IAGzBwtE,EAAGpxE,UAAU2hF,WAAa,SAAqB/9E,GAC7C,IAAIpH,EAAIoH,EACJ/H,EAAI,EAiBR,OAhBIW,GAAK,OACPX,GAAK,GACLW,KAAO,IAELA,GAAK,KACPX,GAAK,EACLW,KAAO,GAELA,GAAK,IACPX,GAAK,EACLW,KAAO,GAELA,GAAK,IACPX,GAAK,EACLW,KAAO,GAEFX,EAAIW,GAIf40E,EAAGpxE,UAAU4hF,UAAY,SAAoBh+E,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAIpH,EAAIoH,EACJ/H,EAAI,EAoBR,OAnBqB,KAAZ,KAAJW,KACHX,GAAK,GACLW,KAAO,IAEU,KAAV,IAAJA,KACHX,GAAK,EACLW,KAAO,GAES,KAAT,GAAJA,KACHX,GAAK,EACLW,KAAO,GAES,KAAT,EAAJA,KACHX,GAAK,EACLW,KAAO,GAES,KAAT,EAAJA,IACHX,IAEKA,GAITu1E,EAAGpxE,UAAU6hF,UAAY,WACvB,IAAIj+E,EAAI/G,KAAKoiF,MAAMpiF,KAAKmC,OAAS,GAC7ByG,EAAK5I,KAAK8kF,WAAW/9E,GACzB,OAA2B,IAAnB/G,KAAKmC,OAAS,GAAUyG,GAiBlC2rE,EAAGpxE,UAAU8hF,SAAW,WACtB,GAAIjlF,KAAKikF,SAAU,OAAO,EAG1B,IADA,IAAIjlF,EAAI,EACCiC,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAAK,CACpC,IAAIiH,EAAIlI,KAAK+kF,UAAU/kF,KAAKoiF,MAAMnhF,IAElC,GADAjC,GAAKkJ,EACK,KAANA,EAAU,MAEhB,OAAOlJ,GAGTu1E,EAAGpxE,UAAUmmB,WAAa,WACxB,OAAOlnB,KAAKozE,KAAKx1E,KAAKglF,YAAc,IAGtCzQ,EAAGpxE,UAAU+hF,OAAS,SAAiB1+B,GACrC,OAAsB,IAAlBxmD,KAAKmiF,SACAniF,KAAKo+C,MAAM+mC,MAAM3+B,GAAO4+B,MAAM,GAEhCplF,KAAKusB,SAGdgoD,EAAGpxE,UAAUkiF,SAAW,SAAmB7+B,GACzC,OAAIxmD,KAAKslF,MAAM9+B,EAAQ,GACdxmD,KAAKulF,KAAK/+B,GAAO4+B,MAAM,GAAGI,OAE5BxlF,KAAKusB,SAGdgoD,EAAGpxE,UAAUsiF,MAAQ,WACnB,OAAyB,IAAlBzlF,KAAKmiF,UAId5N,EAAGpxE,UAAUuiF,IAAM,WACjB,OAAO1lF,KAAKusB,QAAQi5D,QAGtBjR,EAAGpxE,UAAUqiF,KAAO,WAKlB,OAJKxlF,KAAKikF,WACRjkF,KAAKmiF,UAAY,GAGZniF,MAITu0E,EAAGpxE,UAAUwiF,KAAO,SAAet8E,GACjC,KAAOrJ,KAAKmC,OAASkH,EAAIlH,QACvBnC,KAAKoiF,MAAMpiF,KAAKmC,UAAY,EAG9B,IAAK,IAAIlB,EAAI,EAAGA,EAAIoI,EAAIlH,OAAQlB,IAC9BjB,KAAKoiF,MAAMnhF,GAAKjB,KAAKoiF,MAAMnhF,GAAKoI,EAAI+4E,MAAMnhF,GAG5C,OAAOjB,KAAKmjF,UAGd5O,EAAGpxE,UAAUyiF,IAAM,SAAcv8E,GAE/B,OADAlJ,EAA0C,KAAlCH,KAAKmiF,SAAW94E,EAAI84E,WACrBniF,KAAK2lF,KAAKt8E,IAInBkrE,EAAGpxE,UAAU0iF,GAAK,SAAax8E,GAC7B,OAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQq5D,IAAIv8E,GAC/CA,EAAIkjB,QAAQq5D,IAAI5lF,OAGzBu0E,EAAGpxE,UAAU2iF,IAAM,SAAcz8E,GAC/B,OAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQo5D,KAAKt8E,GAChDA,EAAIkjB,QAAQo5D,KAAK3lF,OAI1Bu0E,EAAGpxE,UAAU4iF,MAAQ,SAAgB18E,GAEnC,IAAInB,EAEFA,EADElI,KAAKmC,OAASkH,EAAIlH,OAChBkH,EAEArJ,KAGN,IAAK,IAAIiB,EAAI,EAAGA,EAAIiH,EAAE/F,OAAQlB,IAC5BjB,KAAKoiF,MAAMnhF,GAAKjB,KAAKoiF,MAAMnhF,GAAKoI,EAAI+4E,MAAMnhF,GAK5C,OAFAjB,KAAKmC,OAAS+F,EAAE/F,OAETnC,KAAKmjF,UAGd5O,EAAGpxE,UAAU6iF,KAAO,SAAe38E,GAEjC,OADAlJ,EAA0C,KAAlCH,KAAKmiF,SAAW94E,EAAI84E,WACrBniF,KAAK+lF,MAAM18E,IAIpBkrE,EAAGpxE,UAAU8iF,IAAM,SAAc58E,GAC/B,OAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQy5D,KAAK38E,GAChDA,EAAIkjB,QAAQy5D,KAAKhmF,OAG1Bu0E,EAAGpxE,UAAU+iF,KAAO,SAAe78E,GACjC,OAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQw5D,MAAM18E,GACjDA,EAAIkjB,QAAQw5D,MAAM/lF,OAI3Bu0E,EAAGpxE,UAAUgjF,MAAQ,SAAgB98E,GAEnC,IAAIlB,EACAD,EACAlI,KAAKmC,OAASkH,EAAIlH,QACpBgG,EAAInI,KACJkI,EAAImB,IAEJlB,EAAIkB,EACJnB,EAAIlI,MAGN,IAAK,IAAIiB,EAAI,EAAGA,EAAIiH,EAAE/F,OAAQlB,IAC5BjB,KAAKoiF,MAAMnhF,GAAKkH,EAAEi6E,MAAMnhF,GAAKiH,EAAEk6E,MAAMnhF,GAGvC,GAAIjB,OAASmI,EACX,KAAOlH,EAAIkH,EAAEhG,OAAQlB,IACnBjB,KAAKoiF,MAAMnhF,GAAKkH,EAAEi6E,MAAMnhF,GAM5B,OAFAjB,KAAKmC,OAASgG,EAAEhG,OAETnC,KAAKmjF,UAGd5O,EAAGpxE,UAAUijF,KAAO,SAAe/8E,GAEjC,OADAlJ,EAA0C,KAAlCH,KAAKmiF,SAAW94E,EAAI84E,WACrBniF,KAAKmmF,MAAM98E,IAIpBkrE,EAAGpxE,UAAUkjF,IAAM,SAAch9E,GAC/B,OAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQ65D,KAAK/8E,GAChDA,EAAIkjB,QAAQ65D,KAAKpmF,OAG1Bu0E,EAAGpxE,UAAUmjF,KAAO,SAAej9E,GACjC,OAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQ45D,MAAM98E,GACjDA,EAAIkjB,QAAQ45D,MAAMnmF,OAI3Bu0E,EAAGpxE,UAAUgiF,MAAQ,SAAgB3+B,GACnCrmD,EAAwB,kBAAVqmD,GAAsBA,GAAS,GAE7C,IAAI+/B,EAAsC,EAAxBnkF,KAAKozE,KAAKhvB,EAAQ,IAChCggC,EAAWhgC,EAAQ,GAGvBxmD,KAAKyjF,QAAQ8C,GAETC,EAAW,GACbD,IAIF,IAAK,IAAItlF,EAAI,EAAGA,EAAIslF,EAAatlF,IAC/BjB,KAAKoiF,MAAMnhF,GAAsB,UAAhBjB,KAAKoiF,MAAMnhF,GAS9B,OALIulF,EAAW,IACbxmF,KAAKoiF,MAAMnhF,IAAMjB,KAAKoiF,MAAMnhF,GAAM,UAAc,GAAKulF,GAIhDxmF,KAAKmjF,UAGd5O,EAAGpxE,UAAUoiF,KAAO,SAAe/+B,GACjC,OAAOxmD,KAAKusB,QAAQ44D,MAAM3+B,IAI5B+tB,EAAGpxE,UAAUsjF,KAAO,SAAeC,EAAK1gF,GACtC7F,EAAsB,kBAARumF,GAAoBA,GAAO,GAEzC,IAAIt0E,EAAOs0E,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAUjB,OARA1mF,KAAKyjF,QAAQrxE,EAAM,GAGjBpS,KAAKoiF,MAAMhwE,GADTpM,EACgBhG,KAAKoiF,MAAMhwE,GAAQ,GAAKu0E,EAExB3mF,KAAKoiF,MAAMhwE,KAAS,GAAKu0E,GAGtC3mF,KAAKmjF,UAId5O,EAAGpxE,UAAUyjF,KAAO,SAAev9E,GACjC,IAAIrK,EAkBAmJ,EAAGD,EAfP,GAAsB,IAAlBlI,KAAKmiF,UAAmC,IAAjB94E,EAAI84E,SAI7B,OAHAniF,KAAKmiF,SAAW,EAChBnjF,EAAIgB,KAAK6mF,KAAKx9E,GACdrJ,KAAKmiF,UAAY,EACVniF,KAAK0jF,YAGP,GAAsB,IAAlB1jF,KAAKmiF,UAAmC,IAAjB94E,EAAI84E,SAIpC,OAHA94E,EAAI84E,SAAW,EACfnjF,EAAIgB,KAAK6mF,KAAKx9E,GACdA,EAAI84E,SAAW,EACRnjF,EAAE0kF,YAKP1jF,KAAKmC,OAASkH,EAAIlH,QACpBgG,EAAInI,KACJkI,EAAImB,IAEJlB,EAAIkB,EACJnB,EAAIlI,MAIN,IADA,IAAIkJ,EAAQ,EACHjI,EAAI,EAAGA,EAAIiH,EAAE/F,OAAQlB,IAC5BjC,GAAkB,EAAbmJ,EAAEi6E,MAAMnhF,KAAwB,EAAbiH,EAAEk6E,MAAMnhF,IAAUiI,EAC1ClJ,KAAKoiF,MAAMnhF,GAAS,SAAJjC,EAChBkK,EAAQlK,IAAM,GAEhB,KAAiB,IAAVkK,GAAejI,EAAIkH,EAAEhG,OAAQlB,IAClCjC,GAAkB,EAAbmJ,EAAEi6E,MAAMnhF,IAAUiI,EACvBlJ,KAAKoiF,MAAMnhF,GAAS,SAAJjC,EAChBkK,EAAQlK,IAAM,GAIhB,GADAgB,KAAKmC,OAASgG,EAAEhG,OACF,IAAV+G,EACFlJ,KAAKoiF,MAAMpiF,KAAKmC,QAAU+G,EAC1BlJ,KAAKmC,cAEA,GAAIgG,IAAMnI,KACf,KAAOiB,EAAIkH,EAAEhG,OAAQlB,IACnBjB,KAAKoiF,MAAMnhF,GAAKkH,EAAEi6E,MAAMnhF,GAI5B,OAAOjB,MAITu0E,EAAGpxE,UAAUwa,IAAM,SAActU,GAC/B,IAAI/B,EACJ,OAAqB,IAAjB+B,EAAI84E,UAAoC,IAAlBniF,KAAKmiF,UAC7B94E,EAAI84E,SAAW,EACf76E,EAAMtH,KAAKikC,IAAI56B,GACfA,EAAI84E,UAAY,EACT76E,GACmB,IAAjB+B,EAAI84E,UAAoC,IAAlBniF,KAAKmiF,UACpCniF,KAAKmiF,SAAW,EAChB76E,EAAM+B,EAAI46B,IAAIjkC,MACdA,KAAKmiF,SAAW,EACT76E,GAGLtH,KAAKmC,OAASkH,EAAIlH,OAAenC,KAAKusB,QAAQq6D,KAAKv9E,GAEhDA,EAAIkjB,QAAQq6D,KAAK5mF,OAI1Bu0E,EAAGpxE,UAAU0jF,KAAO,SAAex9E,GAEjC,GAAqB,IAAjBA,EAAI84E,SAAgB,CACtB94E,EAAI84E,SAAW,EACf,IAAInjF,EAAIgB,KAAK4mF,KAAKv9E,GAElB,OADAA,EAAI84E,SAAW,EACRnjF,EAAE0kF,YAGJ,GAAsB,IAAlB1jF,KAAKmiF,SAId,OAHAniF,KAAKmiF,SAAW,EAChBniF,KAAK4mF,KAAKv9E,GACVrJ,KAAKmiF,SAAW,EACTniF,KAAK0jF,YAId,IAWIv7E,EAAGD,EAXHm2C,EAAMr+C,KAAKq+C,IAAIh1C,GAGnB,GAAY,IAARg1C,EAIF,OAHAr+C,KAAKmiF,SAAW,EAChBniF,KAAKmC,OAAS,EACdnC,KAAKoiF,MAAM,GAAK,EACTpiF,KAKLq+C,EAAM,GACRl2C,EAAInI,KACJkI,EAAImB,IAEJlB,EAAIkB,EACJnB,EAAIlI,MAIN,IADA,IAAIkJ,EAAQ,EACHjI,EAAI,EAAGA,EAAIiH,EAAE/F,OAAQlB,IAE5BiI,GADAlK,GAAkB,EAAbmJ,EAAEi6E,MAAMnhF,KAAwB,EAAbiH,EAAEk6E,MAAMnhF,IAAUiI,IAC7B,GACblJ,KAAKoiF,MAAMnhF,GAAS,SAAJjC,EAElB,KAAiB,IAAVkK,GAAejI,EAAIkH,EAAEhG,OAAQlB,IAElCiI,GADAlK,GAAkB,EAAbmJ,EAAEi6E,MAAMnhF,IAAUiI,IACV,GACblJ,KAAKoiF,MAAMnhF,GAAS,SAAJjC,EAIlB,GAAc,IAAVkK,GAAejI,EAAIkH,EAAEhG,QAAUgG,IAAMnI,KACvC,KAAOiB,EAAIkH,EAAEhG,OAAQlB,IACnBjB,KAAKoiF,MAAMnhF,GAAKkH,EAAEi6E,MAAMnhF,GAU5B,OANAjB,KAAKmC,OAASC,KAAK0xC,IAAI9zC,KAAKmC,OAAQlB,GAEhCkH,IAAMnI,OACRA,KAAKmiF,SAAW,GAGXniF,KAAKmjF,UAId5O,EAAGpxE,UAAU8gC,IAAM,SAAc56B,GAC/B,OAAOrJ,KAAKusB,QAAQs6D,KAAKx9E,IA+C3B,IAAIy9E,EAAc,SAAsBtiF,EAAM6E,EAAKkrC,GACjD,IAII5rC,EACAo+E,EACAn+E,EANAT,EAAI3D,EAAK49E,MACTl6E,EAAImB,EAAI+4E,MACRx5C,EAAI2L,EAAI6tC,MACRz6E,EAAI,EAIJq/E,EAAY,EAAP7+E,EAAE,GACPm5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAP9+E,EAAE,GACPo5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAP/+E,EAAE,GACPq5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAPh/E,EAAE,GACPs5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAPj/E,EAAE,GACPu5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAPl/E,EAAE,GACPw5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAPn/E,EAAE,GACPy5D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAPp/E,EAAE,GACP05D,EAAW,KAAL0lB,EACNlmB,EAAMkmB,IAAO,GACbC,EAAY,EAAPr/E,EAAE,GACPs/E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPx/E,EAAE,GACPy/E,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbjsB,EAAY,EAAPxzD,EAAE,GACP+3D,EAAW,KAALvE,EACN+D,EAAM/D,IAAO,GACbC,EAAY,EAAPzzD,EAAE,GACPg4D,EAAW,KAALvE,EACN+D,EAAM/D,IAAO,GACbC,EAAY,EAAP1zD,EAAE,GACPi4D,EAAW,KAALvE,EACN+D,EAAM/D,IAAO,GACbC,EAAY,EAAP3zD,EAAE,GACPk4D,EAAW,KAALvE,EACN+D,EAAM/D,IAAO,GACbC,EAAY,EAAP5zD,EAAE,GACPm4D,EAAW,KAALvE,EACN+D,GAAM/D,IAAO,GACbC,GAAY,EAAP7zD,EAAE,GACPo4D,GAAW,KAALvE,GACN+D,GAAM/D,KAAO,GACbC,GAAY,EAAP9zD,EAAE,GACPq4D,GAAW,KAALvE,GACN+D,GAAM/D,KAAO,GACbC,GAAY,EAAP/zD,EAAE,GACPs4D,GAAW,KAALvE,GACN+D,GAAM/D,KAAO,GACbC,GAAY,EAAPh0D,EAAE,GACP4/E,GAAW,KAAL5rB,GACN6rB,GAAM7rB,KAAO,GACbC,GAAY,EAAPj0D,EAAE,GACP8/E,GAAW,KAAL7rB,GACN8rB,GAAM9rB,KAAO,GAEjB5nB,EAAI4tC,SAAW39E,EAAK29E,SAAW94E,EAAI84E,SACnC5tC,EAAIpyC,OAAS,GAMb,IAAI+lF,IAAQvgF,GAJZgB,EAAKvG,KAAK+lF,KAAK7mB,EAAKrB,IAIE,KAAa,MAFnC8mB,GADAA,EAAM3kF,KAAK+lF,KAAK7mB,EAAK7B,IACRr9D,KAAK+lF,KAAKrnB,EAAKb,GAAQ,KAEU,IAAO,EACrDt4D,IAFAiB,EAAKxG,KAAK+lF,KAAKrnB,EAAKrB,KAEPsnB,IAAQ,IAAO,IAAMmB,KAAO,IAAO,EAChDA,IAAM,SAENv/E,EAAKvG,KAAK+lF,KAAK5mB,EAAKtB,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAK5mB,EAAK9B,IACRr9D,KAAK+lF,KAAKpnB,EAAKd,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKpnB,EAAKtB,GAKpB,IAAI2oB,IAAQzgF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKpB,GAAQ,GAIZ,KAAa,MAFnC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAK5B,GAAQ,GACvBt9D,KAAK+lF,KAAKrnB,EAAKZ,GAAQ,KAEU,IAAO,EACrDv4D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKpB,GAAQ,IAErBqnB,IAAQ,IAAO,IAAMqB,KAAO,IAAO,EAChDA,IAAM,SAENz/E,EAAKvG,KAAK+lF,KAAK3mB,EAAKvB,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAK3mB,EAAK/B,IACRr9D,KAAK+lF,KAAKnnB,EAAKf,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKnnB,EAAKvB,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKrB,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAK7B,GAAQ,GACvBt9D,KAAK+lF,KAAKpnB,EAAKb,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKrB,GAAQ,EAKlC,IAAI2oB,IAAQ1gF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKnB,GAAQ,GAIZ,KAAa,MAFnC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAK3B,GAAQ,GACvBv9D,KAAK+lF,KAAKrnB,EAAKX,GAAQ,KAEU,IAAO,EACrDx4D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKnB,GAAQ,IAErBonB,IAAQ,IAAO,IAAMsB,KAAO,IAAO,EAChDA,IAAM,SAEN1/E,EAAKvG,KAAK+lF,KAAK1mB,EAAKxB,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAK1mB,EAAKhC,IACRr9D,KAAK+lF,KAAKlnB,EAAKhB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKlnB,EAAKxB,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKtB,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAK9B,GAAQ,GACvBt9D,KAAK+lF,KAAKnnB,EAAKd,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKtB,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKpB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAK5B,GAAQ,GACvBv9D,KAAK+lF,KAAKpnB,EAAKZ,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKpB,GAAQ,EAKlC,IAAI2oB,IAAQ3gF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKlB,GAAQ,GAIZ,KAAa,MAFnC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAK1B,GAAQ,GACvBx9D,KAAK+lF,KAAKrnB,EAAKV,GAAQ,KAEU,IAAO,EACrDz4D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKlB,GAAQ,IAErBmnB,IAAQ,IAAO,IAAMuB,KAAO,IAAO,EAChDA,IAAM,SAEN3/E,EAAKvG,KAAK+lF,KAAKzmB,EAAKzB,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAKzmB,EAAKjC,IACRr9D,KAAK+lF,KAAKjnB,EAAKjB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKjnB,EAAKzB,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKvB,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAK/B,GAAQ,GACvBt9D,KAAK+lF,KAAKlnB,EAAKf,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKvB,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKrB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAK7B,GAAQ,GACvBv9D,KAAK+lF,KAAKnnB,EAAKb,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKrB,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKnB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAK3B,GAAQ,GACvBx9D,KAAK+lF,KAAKpnB,EAAKX,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKnB,GAAQ,EAKlC,IAAI2oB,IAAQ5gF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKjB,GAAQ,GAIZ,KAAa,MAFnC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAKzB,IAAQ,GACvBz9D,KAAK+lF,KAAKrnB,EAAKT,GAAQ,KAEU,IAAO,EACrD14D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKjB,IAAQ,IAErBknB,IAAQ,IAAO,IAAMwB,KAAO,IAAO,EAChDA,IAAM,SAEN5/E,EAAKvG,KAAK+lF,KAAKxmB,EAAK1B,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAKxmB,EAAKlC,IACRr9D,KAAK+lF,KAAKhnB,EAAKlB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKhnB,EAAK1B,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKxB,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAKhC,GAAQ,GACvBt9D,KAAK+lF,KAAKjnB,EAAKhB,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKxB,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKtB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAK9B,GAAQ,GACvBv9D,KAAK+lF,KAAKlnB,EAAKd,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKtB,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKpB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAK5B,GAAQ,GACvBx9D,KAAK+lF,KAAKnnB,EAAKZ,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKpB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKlB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAK1B,IAAQ,GACvBz9D,KAAK+lF,KAAKpnB,EAAKV,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKlB,IAAQ,EAKlC,IAAI2oB,IAAQ7gF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKhB,IAAQ,GAIZ,KAAa,MAFnCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAKxB,IAAQ,GACvB19D,KAAK+lF,KAAKrnB,EAAKR,IAAQ,KAEU,IAAO,EACrD34D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKhB,IAAQ,IAErBinB,IAAQ,IAAO,IAAMyB,KAAO,IAAO,EAChDA,IAAM,SAEN7/E,EAAKvG,KAAK+lF,KAAKvmB,EAAK3B,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAKvmB,EAAKnC,IACRr9D,KAAK+lF,KAAK/mB,EAAKnB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAK/mB,EAAK3B,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKzB,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAKjC,GAAQ,GACvBt9D,KAAK+lF,KAAKhnB,EAAKjB,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKzB,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKvB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAK/B,GAAQ,GACvBv9D,KAAK+lF,KAAKjnB,EAAKf,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKvB,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKrB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAK7B,GAAQ,GACvBx9D,KAAK+lF,KAAKlnB,EAAKb,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKrB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKnB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAK3B,IAAQ,GACvBz9D,KAAK+lF,KAAKnnB,EAAKX,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKnB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKjB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAKzB,IAAQ,GACvB19D,KAAK+lF,KAAKpnB,EAAKT,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKjB,IAAQ,EAKlC,IAAI2oB,IAAQ9gF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKf,IAAQ,GAIZ,KAAa,MAFnCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAKvB,IAAQ,GACvB39D,KAAK+lF,KAAKrnB,EAAKP,IAAQ,KAEU,IAAO,EACrD54D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKf,IAAQ,IAErBgnB,IAAQ,IAAO,IAAM0B,KAAO,IAAO,EAChDA,IAAM,SAEN9/E,EAAKvG,KAAK+lF,KAAKtmB,EAAK5B,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKpC,IACRr9D,KAAK+lF,KAAK9mB,EAAKpB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAK9mB,EAAK5B,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAK1B,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAKlC,GAAQ,GACvBt9D,KAAK+lF,KAAK/mB,EAAKlB,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAK1B,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKxB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAKhC,GAAQ,GACvBv9D,KAAK+lF,KAAKhnB,EAAKhB,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKxB,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKtB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAK9B,GAAQ,GACvBx9D,KAAK+lF,KAAKjnB,EAAKd,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKtB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKpB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAK5B,IAAQ,GACvBz9D,KAAK+lF,KAAKlnB,EAAKZ,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKpB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKlB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAK1B,IAAQ,GACvB19D,KAAK+lF,KAAKnnB,EAAKV,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKlB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKhB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAKxB,IAAQ,GACvB39D,KAAK+lF,KAAKpnB,EAAKR,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKhB,IAAQ,EAKlC,IAAI2oB,IAAQ/gF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKd,IAAQ,GAIZ,KAAa,MAFnCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAKtB,IAAQ,GACvB59D,KAAK+lF,KAAKrnB,EAAKN,IAAQ,KAEU,IAAO,EACrD74D,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKd,IAAQ,IAErB+mB,IAAQ,IAAO,IAAM2B,KAAO,IAAO,EAChDA,IAAM,SAEN//E,EAAKvG,KAAK+lF,KAAKV,EAAKxnB,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAKV,EAAKhoB,IACRr9D,KAAK+lF,KAAKT,EAAKznB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKT,EAAKjoB,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAK3B,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKnC,GAAQ,GACvBt9D,KAAK+lF,KAAK9mB,EAAKnB,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAK3B,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKzB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAKjC,GAAQ,GACvBv9D,KAAK+lF,KAAK/mB,EAAKjB,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAKzB,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKvB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAK/B,GAAQ,GACvBx9D,KAAK+lF,KAAKhnB,EAAKf,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKvB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKrB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAK7B,IAAQ,GACvBz9D,KAAK+lF,KAAKjnB,EAAKb,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKrB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKnB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAK3B,IAAQ,GACvB19D,KAAK+lF,KAAKlnB,EAAKX,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKnB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKjB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAKzB,IAAQ,GACvB39D,KAAK+lF,KAAKnnB,EAAKT,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKjB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKf,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAKvB,IAAQ,GACvB59D,KAAK+lF,KAAKpnB,EAAKP,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKf,IAAQ,EAKlC,IAAI2oB,IAAQhhF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAKwmB,IAAQ,GAIZ,KAAa,MAFnCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAKymB,IAAQ,GACvB3lF,KAAK+lF,KAAKrnB,EAAKgnB,IAAQ,KAEU,IAAO,EACrDngF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKinB,IAAQ,IAErBhB,IAAQ,IAAO,IAAM4B,KAAO,IAAO,EAChDA,IAAM,SAENhgF,EAAKvG,KAAK+lF,KAAKP,EAAK3nB,GAEpB8mB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAKnoB,IACRr9D,KAAK+lF,KAAKN,EAAK5nB,GAAQ,EACpCr3D,EAAKxG,KAAK+lF,KAAKN,EAAKpoB,GACpB92D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKvnB,GAAQ,EAElC6mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAK/nB,GAAQ,GACvBt9D,KAAK+lF,KAAKT,EAAKxnB,GAAQ,EACpCt3D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAKhoB,GAAQ,EAClC/2D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAK1B,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKlC,GAAQ,GACvBv9D,KAAK+lF,KAAK9mB,EAAKlB,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAK1B,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKxB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAKhC,GAAQ,GACvBx9D,KAAK+lF,KAAK/mB,EAAKhB,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAKxB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKtB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAK9B,IAAQ,GACvBz9D,KAAK+lF,KAAKhnB,EAAKd,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKtB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKpB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAK5B,IAAQ,GACvB19D,KAAK+lF,KAAKjnB,EAAKZ,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKpB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKlB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAK1B,IAAQ,GACvB39D,KAAK+lF,KAAKlnB,EAAKV,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKlB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKhB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAKxB,IAAQ,GACvB59D,KAAK+lF,KAAKnnB,EAAKR,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKhB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKumB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAKwmB,IAAQ,GACvB3lF,KAAK+lF,KAAKpnB,EAAK+mB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKgnB,IAAQ,EAKlC,IAAIa,IAAQjhF,GAJZgB,EAAMA,EAAKvG,KAAK+lF,KAAK7mB,EAAK0mB,IAAQ,GAIZ,KAAa,MAFnCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK7mB,EAAK2mB,IAAQ,GACvB7lF,KAAK+lF,KAAKrnB,EAAKknB,IAAQ,KAEU,IAAO,EACrDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKrnB,EAAKmnB,IAAQ,IAErBlB,IAAQ,IAAO,IAAM6B,KAAO,IAAO,EAChDA,IAAM,SAENjgF,EAAKvG,KAAK+lF,KAAKP,EAAK1nB,GAEpB6mB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAKloB,IACRt9D,KAAK+lF,KAAKN,EAAK3nB,GAAQ,EACpCt3D,EAAKxG,KAAK+lF,KAAKN,EAAKnoB,GACpB/2D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKtnB,GAAQ,EAElC4mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAK9nB,GAAQ,GACvBv9D,KAAK+lF,KAAKT,EAAKvnB,GAAQ,EACpCv3D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAK/nB,GAAQ,EAClCh3D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKzB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKjC,GAAQ,GACvBx9D,KAAK+lF,KAAK9mB,EAAKjB,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAKzB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKvB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAK/B,IAAQ,GACvBz9D,KAAK+lF,KAAK/mB,EAAKf,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAKvB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKrB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAK7B,IAAQ,GACvB19D,KAAK+lF,KAAKhnB,EAAKb,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKrB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKnB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAK3B,IAAQ,GACvB39D,KAAK+lF,KAAKjnB,EAAKX,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKnB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKjB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAKzB,IAAQ,GACvB59D,KAAK+lF,KAAKlnB,EAAKT,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKjB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKsmB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAKumB,IAAQ,GACvB3lF,KAAK+lF,KAAKnnB,EAAK8mB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAK+mB,IAAQ,EAKlC,IAAIc,IAASlhF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAK5mB,EAAKymB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK5mB,EAAK0mB,IAAQ,GACvB7lF,KAAK+lF,KAAKpnB,EAAKinB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKpnB,EAAKknB,IAAQ,IAErBlB,IAAQ,IAAO,IAAM8B,KAAQ,IAAO,EACjDA,IAAO,SAEPlgF,EAAKvG,KAAK+lF,KAAKP,EAAKznB,GAEpB4mB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAKjoB,IACRv9D,KAAK+lF,KAAKN,EAAK1nB,GAAQ,EACpCv3D,EAAKxG,KAAK+lF,KAAKN,EAAKloB,GACpBh3D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKrnB,GAAQ,EAElC2mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAK7nB,GAAQ,GACvBx9D,KAAK+lF,KAAKT,EAAKtnB,GAAQ,EACpCx3D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAK9nB,GAAQ,EAClCj3D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKxB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKhC,IAAQ,GACvBz9D,KAAK+lF,KAAK9mB,EAAKhB,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAKxB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKtB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAK9B,IAAQ,GACvB19D,KAAK+lF,KAAK/mB,EAAKd,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAKtB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKpB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAK5B,IAAQ,GACvB39D,KAAK+lF,KAAKhnB,EAAKZ,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKpB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKlB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAK1B,IAAQ,GACvB59D,KAAK+lF,KAAKjnB,EAAKV,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAKlB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKqmB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAKsmB,IAAQ,GACvB3lF,KAAK+lF,KAAKlnB,EAAK6mB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAK8mB,IAAQ,EAKlC,IAAIe,IAASnhF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAK3mB,EAAKwmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK3mB,EAAKymB,IAAQ,GACvB7lF,KAAK+lF,KAAKnnB,EAAKgnB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKnnB,EAAKinB,IAAQ,IAErBlB,IAAQ,IAAO,IAAM+B,KAAQ,IAAO,EACjDA,IAAO,SAEPngF,EAAKvG,KAAK+lF,KAAKP,EAAKxnB,GAEpB2mB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAKhoB,IACRx9D,KAAK+lF,KAAKN,EAAKznB,GAAQ,EACpCx3D,EAAKxG,KAAK+lF,KAAKN,EAAKjoB,GACpBj3D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKpnB,GAAQ,EAElC0mB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAK5nB,IAAQ,GACvBz9D,KAAK+lF,KAAKT,EAAKrnB,GAAQ,EACpCz3D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAK7nB,IAAQ,EAClCl3D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKvB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAK/B,IAAQ,GACvB19D,KAAK+lF,KAAK9mB,EAAKf,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAKvB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKrB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAK7B,IAAQ,GACvB39D,KAAK+lF,KAAK/mB,EAAKb,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAKrB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKnB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAK3B,IAAQ,GACvB59D,KAAK+lF,KAAKhnB,EAAKX,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAKnB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKomB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAKqmB,IAAQ,GACvB3lF,KAAK+lF,KAAKjnB,EAAK4mB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAK6mB,IAAQ,EAKlC,IAAIgB,IAASphF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAK1mB,EAAKumB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAK1mB,EAAKwmB,IAAQ,GACvB7lF,KAAK+lF,KAAKlnB,EAAK+mB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKlnB,EAAKgnB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMgC,KAAQ,IAAO,EACjDA,IAAO,SAEPpgF,EAAKvG,KAAK+lF,KAAKP,EAAKvnB,GAEpB0mB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAK/nB,KACRz9D,KAAK+lF,KAAKN,EAAKxnB,GAAQ,EACpCz3D,EAAKxG,KAAK+lF,KAAKN,EAAKhoB,IACpBl3D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKnnB,IAAQ,EAElCymB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAK3nB,IAAQ,GACvB19D,KAAK+lF,KAAKT,EAAKpnB,IAAQ,EACpC13D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAK5nB,IAAQ,EAClCn3D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKtB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAK9B,IAAQ,GACvB39D,KAAK+lF,KAAK9mB,EAAKd,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAKtB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKpB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAK5B,IAAQ,GACvB59D,KAAK+lF,KAAK/mB,EAAKZ,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAKpB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKmmB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAKomB,IAAQ,GACvB3lF,KAAK+lF,KAAKhnB,EAAK2mB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAK4mB,IAAQ,EAKlC,IAAIiB,IAASrhF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAKzmB,EAAKsmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKzmB,EAAKumB,IAAQ,GACvB7lF,KAAK+lF,KAAKjnB,EAAK8mB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKjnB,EAAK+mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMiC,KAAQ,IAAO,EACjDA,IAAO,SAEPrgF,EAAKvG,KAAK+lF,KAAKP,EAAKtnB,IAEpBymB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAK9nB,KACR19D,KAAK+lF,KAAKN,EAAKvnB,IAAQ,EACpC13D,EAAKxG,KAAK+lF,KAAKN,EAAK/nB,IACpBn3D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKlnB,IAAQ,EAElCwmB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAK1nB,IAAQ,GACvB39D,KAAK+lF,KAAKT,EAAKnnB,IAAQ,EACpC33D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAK3nB,IAAQ,EAClCp3D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKrB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAK7B,IAAQ,GACvB59D,KAAK+lF,KAAK9mB,EAAKb,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAKrB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKkmB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAKmmB,IAAQ,GACvB3lF,KAAK+lF,KAAK/mB,EAAK0mB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAK2mB,IAAQ,EAKlC,IAAIkB,IAASthF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAKxmB,EAAKqmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKxmB,EAAKsmB,IAAQ,GACvB7lF,KAAK+lF,KAAKhnB,EAAK6mB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKhnB,EAAK8mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMkC,KAAQ,IAAO,EACjDA,IAAO,SAEPtgF,EAAKvG,KAAK+lF,KAAKP,EAAKrnB,IAEpBwmB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAK7nB,KACR39D,KAAK+lF,KAAKN,EAAKtnB,IAAQ,EACpC33D,EAAKxG,KAAK+lF,KAAKN,EAAK9nB,IACpBp3D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKjnB,IAAQ,EAElCumB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAKznB,IAAQ,GACvB59D,KAAK+lF,KAAKT,EAAKlnB,IAAQ,EACpC53D,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAK1nB,IAAQ,EAClCr3D,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKimB,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKkmB,IAAQ,GACvB3lF,KAAK+lF,KAAK9mB,EAAKymB,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAK0mB,IAAQ,EAKlC,IAAImB,IAASvhF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAKvmB,EAAKomB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKvmB,EAAKqmB,IAAQ,GACvB7lF,KAAK+lF,KAAK/mB,EAAK4mB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAK/mB,EAAK6mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMmC,KAAQ,IAAO,EACjDA,IAAO,SAEPvgF,EAAKvG,KAAK+lF,KAAKP,EAAKpnB,IAEpBumB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAK5nB,KACR59D,KAAK+lF,KAAKN,EAAKrnB,IAAQ,EACpC53D,EAAKxG,KAAK+lF,KAAKN,EAAK7nB,IACpBr3D,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKK,IAAQ,EAElCf,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAKM,IAAQ,GACvB3lF,KAAK+lF,KAAKT,EAAKI,IAAQ,EACpCl/E,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAKK,IAAQ,EAKlC,IAAIoB,IAASxhF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAKtmB,EAAKmmB,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKtmB,EAAKomB,IAAQ,GACvB7lF,KAAK+lF,KAAK9mB,EAAK2mB,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAK9mB,EAAK4mB,IAAQ,IAErBlB,IAAQ,IAAO,IAAMoC,KAAQ,IAAO,EACjDA,IAAO,SAEPxgF,EAAKvG,KAAK+lF,KAAKP,EAAKE,IAEpBf,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAKG,KACR3lF,KAAK+lF,KAAKN,EAAKC,IAAQ,EACpCl/E,EAAKxG,KAAK+lF,KAAKN,EAAKE,IAKpB,IAAIqB,IAASzhF,GAJbgB,EAAMA,EAAKvG,KAAK+lF,KAAKV,EAAKO,IAAQ,GAIX,KAAa,MAFpCjB,GADAA,EAAOA,EAAM3kF,KAAK+lF,KAAKV,EAAKQ,IAAQ,GACvB7lF,KAAK+lF,KAAKT,EAAKM,IAAQ,KAEW,IAAO,EACtDrgF,IAFAiB,EAAMA,EAAKxG,KAAK+lF,KAAKT,EAAKO,IAAQ,IAErBlB,IAAQ,IAAO,IAAMqC,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAAS1hF,GAJbgB,EAAKvG,KAAK+lF,KAAKP,EAAKI,KAIG,KAAa,MAFpCjB,GADAA,EAAM3kF,KAAK+lF,KAAKP,EAAKK,KACR7lF,KAAK+lF,KAAKN,EAAKG,IAAQ,KAEW,IAAO,EA0BtD,OAzBArgF,IAFAiB,EAAKxG,KAAK+lF,KAAKN,EAAKI,MAEPlB,IAAQ,IAAO,IAAMsC,KAAQ,IAAO,EACjDA,IAAO,SACPzgD,EAAE,GAAKs/C,GACPt/C,EAAE,GAAKw/C,GACPx/C,EAAE,GAAKy/C,GACPz/C,EAAE,GAAK0/C,GACP1/C,EAAE,GAAK2/C,GACP3/C,EAAE,GAAK4/C,GACP5/C,EAAE,GAAK6/C,GACP7/C,EAAE,GAAK8/C,GACP9/C,EAAE,GAAK+/C,GACP//C,EAAE,GAAKggD,GACPhgD,EAAE,IAAMigD,GACRjgD,EAAE,IAAMkgD,GACRlgD,EAAE,IAAMmgD,GACRngD,EAAE,IAAMogD,GACRpgD,EAAE,IAAMqgD,GACRrgD,EAAE,IAAMsgD,GACRtgD,EAAE,IAAMugD,GACRvgD,EAAE,IAAMwgD,GACRxgD,EAAE,IAAMygD,GACE,IAAN1hF,IACFihC,EAAE,IAAMjhC,EACR4sC,EAAIpyC,UAECoyC,GAQT,SAAS+0C,EAAU9kF,EAAM6E,EAAKkrC,GAC5BA,EAAI4tC,SAAW94E,EAAI84E,SAAW39E,EAAK29E,SACnC5tC,EAAIpyC,OAASqC,EAAKrC,OAASkH,EAAIlH,OAI/B,IAFA,IAAI+G,EAAQ,EACRqgF,EAAU,EACL7pF,EAAI,EAAGA,EAAI60C,EAAIpyC,OAAS,EAAGzC,IAAK,CAGvC,IAAI2kF,EAASkF,EACbA,EAAU,EAGV,IAFA,IAAIjF,EAAgB,SAARp7E,EACRq7E,EAAOniF,KAAK8vC,IAAIxyC,EAAG2J,EAAIlH,OAAS,GAC3B6N,EAAI5N,KAAK0xC,IAAI,EAAGp0C,EAAI8E,EAAKrC,OAAS,GAAI6N,GAAKu0E,EAAMv0E,IAAK,CAC7D,IAAI/O,EAAIvB,EAAIsQ,EAGRhR,GAFoB,EAAhBwF,EAAK49E,MAAMnhF,KACI,EAAfoI,EAAI+4E,MAAMpyE,IAGdrH,EAAS,SAAJ3J,EAGTslF,EAAa,UADb37E,EAAMA,EAAK27E,EAAS,GAIpBiF,IAFAlF,GAHAA,EAAUA,GAAWrlF,EAAI,SAAa,GAAM,IAGxB2J,IAAO,IAAO,KAEZ,GACtB07E,GAAU,SAEZ9vC,EAAI6tC,MAAM1iF,GAAK4kF,EACfp7E,EAAQm7E,EACRA,EAASkF,EAQX,OANc,IAAVrgF,EACFqrC,EAAI6tC,MAAM1iF,GAAKwJ,EAEfqrC,EAAIpyC,SAGCoyC,EAAI4uC,SAGb,SAASqG,EAAYhlF,EAAM6E,EAAKkrC,GAI9B,OAAO+0C,EAAS9kF,EAAM6E,EAAKkrC,GAsB7B,SAASk1C,EAAM3rF,EAAG6M,GAChB3K,KAAKlC,EAAIA,EACTkC,KAAK2K,EAAIA,EAzENvI,KAAK+lF,OACRrB,EAAc1C,GAmDhB7P,EAAGpxE,UAAUumF,MAAQ,SAAgBrgF,EAAKkrC,GACxC,IACIvsC,EAAMhI,KAAKmC,OAASkH,EAAIlH,OAW5B,OAVoB,KAAhBnC,KAAKmC,QAAgC,KAAfkH,EAAIlH,OACtB2kF,EAAY9mF,KAAMqJ,EAAKkrC,GACpBvsC,EAAM,GACTo8E,EAAWpkF,KAAMqJ,EAAKkrC,GACnBvsC,EAAM,KACTshF,EAAStpF,KAAMqJ,EAAKkrC,GAEpBi1C,EAAWxpF,KAAMqJ,EAAKkrC,IAchCk1C,EAAKtmF,UAAUwmF,QAAU,SAAkBC,GAGzC,IAFA,IAAIjqF,EAAI,IAAIN,MAAMuqF,GACdzjF,EAAIouE,EAAGpxE,UAAU2hF,WAAW8E,GAAK,EAC5B3oF,EAAI,EAAGA,EAAI2oF,EAAG3oF,IACrBtB,EAAEsB,GAAKjB,KAAK6pF,OAAO5oF,EAAGkF,EAAGyjF,GAG3B,OAAOjqF,GAIT8pF,EAAKtmF,UAAU0mF,OAAS,SAAiB/rF,EAAGqI,EAAGyjF,GAC7C,GAAU,IAAN9rF,GAAWA,IAAM8rF,EAAI,EAAG,OAAO9rF,EAGnC,IADA,IAAIgsF,EAAK,EACA7oF,EAAI,EAAGA,EAAIkF,EAAGlF,IACrB6oF,IAAW,EAAJhsF,IAAWqI,EAAIlF,EAAI,EAC1BnD,IAAM,EAGR,OAAOgsF,GAKTL,EAAKtmF,UAAU4mF,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GACpE,IAAK,IAAI3oF,EAAI,EAAGA,EAAI2oF,EAAG3oF,IACrBkpF,EAAKlpF,GAAKgpF,EAAID,EAAI/oF,IAClBmpF,EAAKnpF,GAAKipF,EAAIF,EAAI/oF,KAItBwoF,EAAKtmF,UAAU84C,UAAY,SAAoBguC,EAAKC,EAAKC,EAAMC,EAAMR,EAAGI,GACtEhqF,KAAK+pF,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAMR,GAExC,IAAK,IAAInqF,EAAI,EAAGA,EAAImqF,EAAGnqF,IAAM,EAM3B,IALA,IAAI0G,EAAI1G,GAAK,EAET4qF,EAAQjoF,KAAKkoF,IAAI,EAAIloF,KAAKmoF,GAAKpkF,GAC/BqkF,EAAQpoF,KAAKqoF,IAAI,EAAIroF,KAAKmoF,GAAKpkF,GAE1BuB,EAAI,EAAGA,EAAIkiF,EAAGliF,GAAKvB,EAI1B,IAHA,IAAIukF,EAASL,EACTM,EAASH,EAEJx6E,EAAI,EAAGA,EAAIvQ,EAAGuQ,IAAK,CAC1B,IAAIo5D,EAAK+gB,EAAKziF,EAAIsI,GACd46E,EAAKR,EAAK1iF,EAAIsI,GAEd66E,EAAKV,EAAKziF,EAAIsI,EAAIvQ,GAClBqrF,EAAKV,EAAK1iF,EAAIsI,EAAIvQ,GAElBsrF,EAAKL,EAASG,EAAKF,EAASG,EAEhCA,EAAKJ,EAASI,EAAKH,EAASE,EAC5BA,EAAKE,EAELZ,EAAKziF,EAAIsI,GAAKo5D,EAAKyhB,EACnBT,EAAK1iF,EAAIsI,GAAK46E,EAAKE,EAEnBX,EAAKziF,EAAIsI,EAAIvQ,GAAK2pE,EAAKyhB,EACvBT,EAAK1iF,EAAIsI,EAAIvQ,GAAKmrF,EAAKE,EAGnB96E,IAAM7J,IACR4kF,EAAKV,EAAQK,EAASF,EAAQG,EAE9BA,EAASN,EAAQM,EAASH,EAAQE,EAClCA,EAASK,KAOnBtB,EAAKtmF,UAAU6nF,YAAc,SAAsB18D,EAAGrmB,GACpD,IAAI2hF,EAAqB,EAAjBxnF,KAAK0xC,IAAI7rC,EAAGqmB,GAChB28D,EAAU,EAAJrB,EACN3oF,EAAI,EACR,IAAK2oF,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/B3oF,IAGF,OAAO,GAAKA,EAAI,EAAIgqF,GAGtBxB,EAAKtmF,UAAU+nF,UAAY,SAAoBjB,EAAKC,EAAKN,GACvD,KAAIA,GAAK,GAET,IAAK,IAAI3oF,EAAI,EAAGA,EAAI2oF,EAAI,EAAG3oF,IAAK,CAC9B,IAAItB,EAAIsqF,EAAIhpF,GAEZgpF,EAAIhpF,GAAKgpF,EAAIL,EAAI3oF,EAAI,GACrBgpF,EAAIL,EAAI3oF,EAAI,GAAKtB,EAEjBA,EAAIuqF,EAAIjpF,GAERipF,EAAIjpF,IAAMipF,EAAIN,EAAI3oF,EAAI,GACtBipF,EAAIN,EAAI3oF,EAAI,IAAMtB,IAItB8pF,EAAKtmF,UAAUgoF,aAAe,SAAuBC,EAAIxB,GAEvD,IADA,IAAI1gF,EAAQ,EACHjI,EAAI,EAAGA,EAAI2oF,EAAI,EAAG3oF,IAAK,CAC9B,IAAI8F,EAAoC,KAAhC3E,KAAKs7C,MAAM0tC,EAAG,EAAInqF,EAAI,GAAK2oF,GACjCxnF,KAAKs7C,MAAM0tC,EAAG,EAAInqF,GAAK2oF,GACvB1gF,EAEFkiF,EAAGnqF,GAAS,SAAJ8F,EAGNmC,EADEnC,EAAI,SACE,EAEAA,EAAI,SAAY,EAI5B,OAAOqkF,GAGT3B,EAAKtmF,UAAUkoF,WAAa,SAAqBD,EAAIpjF,EAAKiiF,EAAKL,GAE7D,IADA,IAAI1gF,EAAQ,EACHjI,EAAI,EAAGA,EAAI+G,EAAK/G,IACvBiI,GAAyB,EAARkiF,EAAGnqF,GAEpBgpF,EAAI,EAAIhpF,GAAa,KAARiI,EAAgBA,KAAkB,GAC/C+gF,EAAI,EAAIhpF,EAAI,GAAa,KAARiI,EAAgBA,KAAkB,GAIrD,IAAKjI,EAAI,EAAI+G,EAAK/G,EAAI2oF,IAAK3oF,EACzBgpF,EAAIhpF,GAAK,EAGXd,EAAiB,IAAV+I,GACP/I,EAA6B,MAAb,KAAR+I,KAGVugF,EAAKtmF,UAAUmoF,KAAO,SAAe1B,GAEnC,IADA,IAAI2B,EAAK,IAAIlsF,MAAMuqF,GACV3oF,EAAI,EAAGA,EAAI2oF,EAAG3oF,IACrBsqF,EAAGtqF,GAAK,EAGV,OAAOsqF,GAGT9B,EAAKtmF,UAAUqoF,KAAO,SAAe1tF,EAAG6M,EAAG4pC,GACzC,IAAIq1C,EAAI,EAAI5pF,KAAKgrF,YAAYltF,EAAEqE,OAAQwI,EAAExI,QAErC6nF,EAAMhqF,KAAK2pF,QAAQC,GAEnBlY,EAAI1xE,KAAKsrF,KAAK1B,GAEdK,EAAM,IAAI5qF,MAAMuqF,GAChB6B,EAAO,IAAIpsF,MAAMuqF,GACjB8B,EAAO,IAAIrsF,MAAMuqF,GAEjB+B,EAAO,IAAItsF,MAAMuqF,GACjBgC,EAAQ,IAAIvsF,MAAMuqF,GAClBiC,EAAQ,IAAIxsF,MAAMuqF,GAElBkC,EAAOv3C,EAAI6tC,MACf0J,EAAK3pF,OAASynF,EAEd5pF,KAAKqrF,WAAWvtF,EAAEskF,MAAOtkF,EAAEqE,OAAQ8nF,EAAKL,GACxC5pF,KAAKqrF,WAAW1gF,EAAEy3E,MAAOz3E,EAAExI,OAAQwpF,EAAM/B,GAEzC5pF,KAAKi8C,UAAUguC,EAAKvY,EAAG+Z,EAAMC,EAAM9B,EAAGI,GACtChqF,KAAKi8C,UAAU0vC,EAAMja,EAAGka,EAAOC,EAAOjC,EAAGI,GAEzC,IAAK,IAAI/oF,EAAI,EAAGA,EAAI2oF,EAAG3oF,IAAK,CAC1B,IAAI8pF,EAAKU,EAAKxqF,GAAK2qF,EAAM3qF,GAAKyqF,EAAKzqF,GAAK4qF,EAAM5qF,GAC9CyqF,EAAKzqF,GAAKwqF,EAAKxqF,GAAK4qF,EAAM5qF,GAAKyqF,EAAKzqF,GAAK2qF,EAAM3qF,GAC/CwqF,EAAKxqF,GAAK8pF,EAUZ,OAPA/qF,KAAKkrF,UAAUO,EAAMC,EAAM9B,GAC3B5pF,KAAKi8C,UAAUwvC,EAAMC,EAAMI,EAAMpa,EAAGkY,EAAGI,GACvChqF,KAAKkrF,UAAUY,EAAMpa,EAAGkY,GACxB5pF,KAAKmrF,aAAaW,EAAMlC,GAExBr1C,EAAI4tC,SAAWrkF,EAAEqkF,SAAWx3E,EAAEw3E,SAC9B5tC,EAAIpyC,OAASrE,EAAEqE,OAASwI,EAAExI,OACnBoyC,EAAI4uC,UAIb5O,EAAGpxE,UAAUmyC,IAAM,SAAcjsC,GAC/B,IAAIkrC,EAAM,IAAIggC,EAAG,MAEjB,OADAhgC,EAAI6tC,MAAQ,IAAI/iF,MAAMW,KAAKmC,OAASkH,EAAIlH,QACjCnC,KAAK0pF,MAAMrgF,EAAKkrC,IAIzBggC,EAAGpxE,UAAU4oF,KAAO,SAAe1iF,GACjC,IAAIkrC,EAAM,IAAIggC,EAAG,MAEjB,OADAhgC,EAAI6tC,MAAQ,IAAI/iF,MAAMW,KAAKmC,OAASkH,EAAIlH,QACjCqnF,EAAWxpF,KAAMqJ,EAAKkrC,IAI/BggC,EAAGpxE,UAAUglF,KAAO,SAAe9+E,GACjC,OAAOrJ,KAAKusB,QAAQm9D,MAAMrgF,EAAKrJ,OAGjCu0E,EAAGpxE,UAAUmgF,MAAQ,SAAgBj6E,GACnC,IAAI2iF,EAAW3iF,EAAM,EACjB2iF,IAAU3iF,GAAOA,GAErBlJ,EAAsB,kBAARkJ,GACdlJ,EAAOkJ,EAAM,UAIb,IADA,IAAIH,EAAQ,EACHjI,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAAK,CACpC,IAAI8F,GAAqB,EAAhB/G,KAAKoiF,MAAMnhF,IAAUoI,EAC1BV,GAAU,SAAJ5B,IAA0B,SAARmC,GAC5BA,IAAU,GACVA,GAAUnC,EAAI,SAAa,EAE3BmC,GAASP,IAAO,GAChB3I,KAAKoiF,MAAMnhF,GAAU,SAAL0H,EAQlB,OALc,IAAVO,IACFlJ,KAAKoiF,MAAMnhF,GAAKiI,EAChBlJ,KAAKmC,UAGA6pF,EAAWhsF,KAAKwlF,OAASxlF,MAGlCu0E,EAAGpxE,UAAU8oF,KAAO,SAAe5iF,GACjC,OAAOrJ,KAAKusB,QAAQ+2D,MAAMj6E,IAI5BkrE,EAAGpxE,UAAU+oF,IAAM,WACjB,OAAOlsF,KAAKs1C,IAAIt1C,OAIlBu0E,EAAGpxE,UAAUgpF,KAAO,WAClB,OAAOnsF,KAAKmoF,KAAKnoF,KAAKusB,UAIxBgoD,EAAGpxE,UAAU0yC,IAAM,SAAcxsC,GAC/B,IAAItC,EA7xCN,SAAqBsC,GAGnB,IAFA,IAAItC,EAAI,IAAI1H,MAAMgK,EAAI27E,aAEb0B,EAAM,EAAGA,EAAM3/E,EAAE5E,OAAQukF,IAAO,CACvC,IAAIt0E,EAAOs0E,EAAM,GAAM,EACnBC,EAAOD,EAAM,GAEjB3/E,EAAE2/E,GAAQr9E,EAAI+4E,MAAMhwE,KAASu0E,EAAQ,EAGvC,OAAO5/E,EAmxCCqlF,CAAW/iF,GACnB,GAAiB,IAAbtC,EAAE5E,OAAc,OAAO,IAAIoyE,EAAG,GAIlC,IADA,IAAIjtE,EAAMtH,KACDiB,EAAI,EAAGA,EAAI8F,EAAE5E,QACP,IAAT4E,EAAE9F,GADsBA,IAAKqG,EAAMA,EAAI4kF,OAI7C,KAAMjrF,EAAI8F,EAAE5E,OACV,IAAK,IAAI68C,EAAI13C,EAAI4kF,MAAOjrF,EAAI8F,EAAE5E,OAAQlB,IAAK+9C,EAAIA,EAAEktC,MAClC,IAATnlF,EAAE9F,KAENqG,EAAMA,EAAIguC,IAAI0J,IAIlB,OAAO13C,GAITitE,EAAGpxE,UAAUkpF,OAAS,SAAiBC,GACrCnsF,EAAuB,kBAATmsF,GAAqBA,GAAQ,GAC3C,IAGIrrF,EAHAjC,EAAIstF,EAAO,GACX7sF,GAAK6sF,EAAOttF,GAAK,GACjButF,EAAa,WAAe,GAAKvtF,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkK,EAAQ,EAEZ,IAAKjI,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAAK,CAChC,IAAIurF,EAAWxsF,KAAKoiF,MAAMnhF,GAAKsrF,EAC3B5kF,GAAsB,EAAhB3H,KAAKoiF,MAAMnhF,IAAUurF,GAAaxtF,EAC5CgB,KAAKoiF,MAAMnhF,GAAK0G,EAAIuB,EACpBA,EAAQsjF,IAAc,GAAKxtF,EAGzBkK,IACFlJ,KAAKoiF,MAAMnhF,GAAKiI,EAChBlJ,KAAKmC,UAIT,GAAU,IAAN1C,EAAS,CACX,IAAKwB,EAAIjB,KAAKmC,OAAS,EAAGlB,GAAK,EAAGA,IAChCjB,KAAKoiF,MAAMnhF,EAAIxB,GAAKO,KAAKoiF,MAAMnhF,GAGjC,IAAKA,EAAI,EAAGA,EAAIxB,EAAGwB,IACjBjB,KAAKoiF,MAAMnhF,GAAK,EAGlBjB,KAAKmC,QAAU1C,EAGjB,OAAOO,KAAKmjF,UAGd5O,EAAGpxE,UAAUspF,MAAQ,SAAgBH,GAGnC,OADAnsF,EAAyB,IAAlBH,KAAKmiF,UACLniF,KAAKqsF,OAAOC,IAMrB/X,EAAGpxE,UAAUupF,OAAS,SAAiBJ,EAAMK,EAAMC,GAEjD,IAAIphF,EADJrL,EAAuB,kBAATmsF,GAAqBA,GAAQ,GAGzC9gF,EADEmhF,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI3tF,EAAIstF,EAAO,GACX7sF,EAAI2C,KAAK8vC,KAAKo6C,EAAOttF,GAAK,GAAIgB,KAAKmC,QACnChD,EAAO,SAAc,WAAcH,GAAMA,EACzC6tF,EAAcD,EAMlB,GAJAphF,GAAK/L,EACL+L,EAAIpJ,KAAK0xC,IAAI,EAAGtoC,GAGZqhF,EAAa,CACf,IAAK,IAAI5rF,EAAI,EAAGA,EAAIxB,EAAGwB,IACrB4rF,EAAYzK,MAAMnhF,GAAKjB,KAAKoiF,MAAMnhF,GAEpC4rF,EAAY1qF,OAAS1C,EAGvB,GAAU,IAANA,QAEG,GAAIO,KAAKmC,OAAS1C,EAEvB,IADAO,KAAKmC,QAAU1C,EACVwB,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAC3BjB,KAAKoiF,MAAMnhF,GAAKjB,KAAKoiF,MAAMnhF,EAAIxB,QAGjCO,KAAKoiF,MAAM,GAAK,EAChBpiF,KAAKmC,OAAS,EAGhB,IAAI+G,EAAQ,EACZ,IAAKjI,EAAIjB,KAAKmC,OAAS,EAAGlB,GAAK,IAAgB,IAAViI,GAAejI,GAAKuK,GAAIvK,IAAK,CAChE,IAAIgG,EAAuB,EAAhBjH,KAAKoiF,MAAMnhF,GACtBjB,KAAKoiF,MAAMnhF,GAAMiI,GAAU,GAAKlK,EAAOiI,IAASjI,EAChDkK,EAAQjC,EAAO9H,EAajB,OATI0tF,GAAyB,IAAV3jF,IACjB2jF,EAAYzK,MAAMyK,EAAY1qF,UAAY+G,GAGxB,IAAhBlJ,KAAKmC,SACPnC,KAAKoiF,MAAM,GAAK,EAChBpiF,KAAKmC,OAAS,GAGTnC,KAAKmjF,UAGd5O,EAAGpxE,UAAU2pF,MAAQ,SAAgBR,EAAMK,EAAMC,GAG/C,OADAzsF,EAAyB,IAAlBH,KAAKmiF,UACLniF,KAAK0sF,OAAOJ,EAAMK,EAAMC,IAIjCrY,EAAGpxE,UAAU4pF,KAAO,SAAeT,GACjC,OAAOtsF,KAAKusB,QAAQkgE,MAAMH,IAG5B/X,EAAGpxE,UAAU6pF,MAAQ,SAAgBV,GACnC,OAAOtsF,KAAKusB,QAAQ8/D,OAAOC,IAI7B/X,EAAGpxE,UAAU8pF,KAAO,SAAeX,GACjC,OAAOtsF,KAAKusB,QAAQugE,MAAMR,IAG5B/X,EAAGpxE,UAAU+pF,MAAQ,SAAgBZ,GACnC,OAAOtsF,KAAKusB,QAAQmgE,OAAOJ,IAI7B/X,EAAGpxE,UAAUmiF,MAAQ,SAAgBoB,GACnCvmF,EAAsB,kBAARumF,GAAoBA,GAAO,GACzC,IAAI1nF,EAAI0nF,EAAM,GACVjnF,GAAKinF,EAAM1nF,GAAK,GAChBggD,EAAI,GAAKhgD,EAGb,QAAIgB,KAAKmC,QAAU1C,OAGXO,KAAKoiF,MAAM3iF,GAELu/C,IAIhBu1B,EAAGpxE,UAAUgqF,OAAS,SAAiBb,GACrCnsF,EAAuB,kBAATmsF,GAAqBA,GAAQ,GAC3C,IAAIttF,EAAIstF,EAAO,GACX7sF,GAAK6sF,EAAOttF,GAAK,GAIrB,GAFAmB,EAAyB,IAAlBH,KAAKmiF,SAAgB,2CAExBniF,KAAKmC,QAAU1C,EACjB,OAAOO,KAQT,GALU,IAANhB,GACFS,IAEFO,KAAKmC,OAASC,KAAK8vC,IAAIzyC,EAAGO,KAAKmC,QAErB,IAANnD,EAAS,CACX,IAAIG,EAAO,SAAc,WAAcH,GAAMA,EAC7CgB,KAAKoiF,MAAMpiF,KAAKmC,OAAS,IAAMhD,EAGjC,OAAOa,KAAKmjF,UAId5O,EAAGpxE,UAAUiqF,MAAQ,SAAgBd,GACnC,OAAOtsF,KAAKusB,QAAQ4gE,OAAOb,IAI7B/X,EAAGpxE,UAAUiiF,MAAQ,SAAgB/7E,GAGnC,OAFAlJ,EAAsB,kBAARkJ,GACdlJ,EAAOkJ,EAAM,UACTA,EAAM,EAAUrJ,KAAKqtF,OAAOhkF,GAGV,IAAlBrJ,KAAKmiF,SACa,IAAhBniF,KAAKmC,SAAiC,EAAhBnC,KAAKoiF,MAAM,KAAW/4E,GAC9CrJ,KAAKoiF,MAAM,GAAK/4E,GAAuB,EAAhBrJ,KAAKoiF,MAAM,IAClCpiF,KAAKmiF,SAAW,EACTniF,OAGTA,KAAKmiF,SAAW,EAChBniF,KAAKqtF,MAAMhkF,GACXrJ,KAAKmiF,SAAW,EACTniF,MAIFA,KAAKujF,OAAOl6E,IAGrBkrE,EAAGpxE,UAAUogF,OAAS,SAAiBl6E,GACrCrJ,KAAKoiF,MAAM,IAAM/4E,EAGjB,IAAK,IAAIpI,EAAI,EAAGA,EAAIjB,KAAKmC,QAAUnC,KAAKoiF,MAAMnhF,IAAM,SAAWA,IAC7DjB,KAAKoiF,MAAMnhF,IAAM,SACbA,IAAMjB,KAAKmC,OAAS,EACtBnC,KAAKoiF,MAAMnhF,EAAI,GAAK,EAEpBjB,KAAKoiF,MAAMnhF,EAAI,KAKnB,OAFAjB,KAAKmC,OAASC,KAAK0xC,IAAI9zC,KAAKmC,OAAQlB,EAAI,GAEjCjB,MAITu0E,EAAGpxE,UAAUkqF,MAAQ,SAAgBhkF,GAGnC,GAFAlJ,EAAsB,kBAARkJ,GACdlJ,EAAOkJ,EAAM,UACTA,EAAM,EAAG,OAAOrJ,KAAKolF,OAAO/7E,GAEhC,GAAsB,IAAlBrJ,KAAKmiF,SAIP,OAHAniF,KAAKmiF,SAAW,EAChBniF,KAAKolF,MAAM/7E,GACXrJ,KAAKmiF,SAAW,EACTniF,KAKT,GAFAA,KAAKoiF,MAAM,IAAM/4E,EAEG,IAAhBrJ,KAAKmC,QAAgBnC,KAAKoiF,MAAM,GAAK,EACvCpiF,KAAKoiF,MAAM,IAAMpiF,KAAKoiF,MAAM,GAC5BpiF,KAAKmiF,SAAW,OAGhB,IAAK,IAAIlhF,EAAI,EAAGA,EAAIjB,KAAKmC,QAAUnC,KAAKoiF,MAAMnhF,GAAK,EAAGA,IACpDjB,KAAKoiF,MAAMnhF,IAAM,SACjBjB,KAAKoiF,MAAMnhF,EAAI,IAAM,EAIzB,OAAOjB,KAAKmjF,UAGd5O,EAAGpxE,UAAUmqF,KAAO,SAAejkF,GACjC,OAAOrJ,KAAKusB,QAAQ64D,MAAM/7E,IAG5BkrE,EAAGpxE,UAAUoqF,KAAO,SAAelkF,GACjC,OAAOrJ,KAAKusB,QAAQ8gE,MAAMhkF,IAG5BkrE,EAAGpxE,UAAUqqF,KAAO,WAGlB,OAFAxtF,KAAKmiF,SAAW,EAETniF,MAGTu0E,EAAGpxE,UAAUi7C,IAAM,WACjB,OAAOp+C,KAAKusB,QAAQihE,QAGtBjZ,EAAGpxE,UAAUsqF,aAAe,SAAuBpkF,EAAKisC,EAAKntB,GAC3D,IACIlnB,EAIA8F,EALAiB,EAAMqB,EAAIlH,OAASgmB,EAGvBnoB,KAAKyjF,QAAQz7E,GAGb,IAAIkB,EAAQ,EACZ,IAAKjI,EAAI,EAAGA,EAAIoI,EAAIlH,OAAQlB,IAAK,CAC/B8F,GAA6B,EAAxB/G,KAAKoiF,MAAMnhF,EAAIknB,IAAcjf,EAClC,IAAI45E,GAAwB,EAAfz5E,EAAI+4E,MAAMnhF,IAAUq0C,EAEjCpsC,IADAnC,GAAa,SAAR+7E,IACS,KAAQA,EAAQ,SAAa,GAC3C9iF,KAAKoiF,MAAMnhF,EAAIknB,GAAa,SAAJphB,EAE1B,KAAO9F,EAAIjB,KAAKmC,OAASgmB,EAAOlnB,IAE9BiI,GADAnC,GAA6B,EAAxB/G,KAAKoiF,MAAMnhF,EAAIknB,IAAcjf,IACrB,GACblJ,KAAKoiF,MAAMnhF,EAAIknB,GAAa,SAAJphB,EAG1B,GAAc,IAAVmC,EAAa,OAAOlJ,KAAKmjF,SAK7B,IAFAhjF,GAAkB,IAAX+I,GACPA,EAAQ,EACHjI,EAAI,EAAGA,EAAIjB,KAAKmC,OAAQlB,IAE3BiI,GADAnC,IAAsB,EAAhB/G,KAAKoiF,MAAMnhF,IAAUiI,IACd,GACblJ,KAAKoiF,MAAMnhF,GAAS,SAAJ8F,EAIlB,OAFA/G,KAAKmiF,SAAW,EAETniF,KAAKmjF,UAGd5O,EAAGpxE,UAAUuqF,SAAW,SAAmBrkF,EAAKiiB,GAC9C,IAAInD,GAAQnoB,KAAKmC,OAASkH,EAAIlH,QAE1BgG,EAAInI,KAAKusB,QACTrkB,EAAImB,EAGJskF,EAA8B,EAAxBzlF,EAAEk6E,MAAMl6E,EAAE/F,OAAS,GAGf,KADdgmB,EAAQ,GADMnoB,KAAK8kF,WAAW6I,MAG5BzlF,EAAIA,EAAE8kF,MAAM7kE,GACZhgB,EAAEkkF,OAAOlkE,GACTwlE,EAA8B,EAAxBzlF,EAAEk6E,MAAMl6E,EAAE/F,OAAS,IAI3B,IACI68C,EADA/2C,EAAIE,EAAEhG,OAAS+F,EAAE/F,OAGrB,GAAa,QAATmpB,EAAgB,EAClB0zB,EAAI,IAAIu1B,EAAG,OACTpyE,OAAS8F,EAAI,EACf+2C,EAAEojC,MAAQ,IAAI/iF,MAAM2/C,EAAE78C,QACtB,IAAK,IAAIlB,EAAI,EAAGA,EAAI+9C,EAAE78C,OAAQlB,IAC5B+9C,EAAEojC,MAAMnhF,GAAK,EAIjB,IAAI2sF,EAAOzlF,EAAEokB,QAAQkhE,aAAavlF,EAAG,EAAGD,GAClB,IAAlB2lF,EAAKzL,WACPh6E,EAAIylF,EACA5uC,IACFA,EAAEojC,MAAMn6E,GAAK,IAIjB,IAAK,IAAI+H,EAAI/H,EAAI,EAAG+H,GAAK,EAAGA,IAAK,CAC/B,IAAI69E,EAAmC,UAAL,EAAxB1lF,EAAEi6E,MAAMl6E,EAAE/F,OAAS6N,KACE,EAA5B7H,EAAEi6E,MAAMl6E,EAAE/F,OAAS6N,EAAI,IAO1B,IAHA69E,EAAKzrF,KAAK8vC,IAAK27C,EAAKF,EAAO,EAAG,UAE9BxlF,EAAEslF,aAAavlF,EAAG2lF,EAAI79E,GACA,IAAf7H,EAAEg6E,UACP0L,IACA1lF,EAAEg6E,SAAW,EACbh6E,EAAEslF,aAAavlF,EAAG,EAAG8H,GAChB7H,EAAE87E,WACL97E,EAAEg6E,UAAY,GAGdnjC,IACFA,EAAEojC,MAAMpyE,GAAK69E,GAajB,OAVI7uC,GACFA,EAAEmkC,SAEJh7E,EAAEg7E,SAGW,QAAT73D,GAA4B,IAAVnD,GACpBhgB,EAAEukF,OAAOvkE,GAGJ,CACLq2B,IAAKQ,GAAK,KACVa,IAAK13C,IAQTosE,EAAGpxE,UAAU2qF,OAAS,SAAiBzkF,EAAKiiB,EAAMyiE,GAGhD,OAFA5tF,GAAQkJ,EAAI46E,UAERjkF,KAAKikF,SACA,CACLzlC,IAAK,IAAI+1B,EAAG,GACZ10B,IAAK,IAAI00B,EAAG,IAKM,IAAlBv0E,KAAKmiF,UAAmC,IAAjB94E,EAAI84E,UAC7B76E,EAAMtH,KAAK0lF,MAAMoI,OAAOzkF,EAAKiiB,GAEhB,QAATA,IACFkzB,EAAMl3C,EAAIk3C,IAAIknC,OAGH,QAATp6D,IACFu0B,EAAMv4C,EAAIu4C,IAAI6lC,MACVqI,GAA6B,IAAjBluC,EAAIsiC,UAClBtiC,EAAI+mC,KAAKv9E,IAIN,CACLm1C,IAAKA,EACLqB,IAAKA,IAIa,IAAlB7/C,KAAKmiF,UAAmC,IAAjB94E,EAAI84E,UAC7B76E,EAAMtH,KAAK8tF,OAAOzkF,EAAIq8E,MAAOp6D,GAEhB,QAATA,IACFkzB,EAAMl3C,EAAIk3C,IAAIknC,OAGT,CACLlnC,IAAKA,EACLqB,IAAKv4C,EAAIu4C,MAI0B,KAAlC7/C,KAAKmiF,SAAW94E,EAAI84E,WACvB76E,EAAMtH,KAAK0lF,MAAMoI,OAAOzkF,EAAIq8E,MAAOp6D,GAEtB,QAATA,IACFu0B,EAAMv4C,EAAIu4C,IAAI6lC,MACVqI,GAA6B,IAAjBluC,EAAIsiC,UAClBtiC,EAAIgnC,KAAKx9E,IAIN,CACLm1C,IAAKl3C,EAAIk3C,IACTqB,IAAKA,IAOLx2C,EAAIlH,OAASnC,KAAKmC,QAAUnC,KAAKq+C,IAAIh1C,GAAO,EACvC,CACLm1C,IAAK,IAAI+1B,EAAG,GACZ10B,IAAK7/C,MAKU,IAAfqJ,EAAIlH,OACO,QAATmpB,EACK,CACLkzB,IAAKx+C,KAAKguF,KAAK3kF,EAAI+4E,MAAM,IACzBviC,IAAK,MAII,QAATv0B,EACK,CACLkzB,IAAK,KACLqB,IAAK,IAAI00B,EAAGv0E,KAAKkkF,MAAM76E,EAAI+4E,MAAM,MAI9B,CACL5jC,IAAKx+C,KAAKguF,KAAK3kF,EAAI+4E,MAAM,IACzBviC,IAAK,IAAI00B,EAAGv0E,KAAKkkF,MAAM76E,EAAI+4E,MAAM,MAI9BpiF,KAAK0tF,SAASrkF,EAAKiiB,GAlF1B,IAAIkzB,EAAKqB,EAAKv4C,GAsFhBitE,EAAGpxE,UAAUq7C,IAAM,SAAcn1C,GAC/B,OAAOrJ,KAAK8tF,OAAOzkF,EAAK,OAAO,GAAOm1C,KAIxC+1B,EAAGpxE,UAAU08C,IAAM,SAAcx2C,GAC/B,OAAOrJ,KAAK8tF,OAAOzkF,EAAK,OAAO,GAAOw2C,KAGxC00B,EAAGpxE,UAAU8qF,KAAO,SAAe5kF,GACjC,OAAOrJ,KAAK8tF,OAAOzkF,EAAK,OAAO,GAAMw2C,KAIvC00B,EAAGpxE,UAAU+qF,SAAW,SAAmB7kF,GACzC,IAAI8kF,EAAKnuF,KAAK8tF,OAAOzkF,GAGrB,GAAI8kF,EAAGtuC,IAAIokC,SAAU,OAAOkK,EAAG3vC,IAE/B,IAAIqB,EAA0B,IAApBsuC,EAAG3vC,IAAI2jC,SAAiBgM,EAAGtuC,IAAIgnC,KAAKx9E,GAAO8kF,EAAGtuC,IAEpDM,EAAO92C,EAAI6jF,MAAM,GACjBvuB,EAAKt1D,EAAI+kF,MAAM,GACf/vC,EAAMwB,EAAIxB,IAAI8B,GAGlB,OAAI9B,EAAM,GAAa,IAAPsgB,GAAoB,IAARtgB,EAAmB8vC,EAAG3vC,IAGvB,IAApB2vC,EAAG3vC,IAAI2jC,SAAiBgM,EAAG3vC,IAAI6uC,MAAM,GAAKc,EAAG3vC,IAAI4mC,MAAM,IAGhE7Q,EAAGpxE,UAAU+gF,MAAQ,SAAgB76E,GACnC,IAAI2iF,EAAW3iF,EAAM,EACjB2iF,IAAU3iF,GAAOA,GAErBlJ,EAAOkJ,GAAO,UAId,IAHA,IAAI3B,GAAK,GAAK,IAAM2B,EAEhByyC,EAAM,EACD76C,EAAIjB,KAAKmC,OAAS,EAAGlB,GAAK,EAAGA,IACpC66C,GAAOp0C,EAAIo0C,GAAuB,EAAhB97C,KAAKoiF,MAAMnhF,KAAWoI,EAG1C,OAAO2iF,GAAYlwC,EAAMA,GAI3By4B,EAAGpxE,UAAUkrF,KAAO,SAAehlF,GACjC,OAAOrJ,KAAKkkF,MAAM76E,IAIpBkrE,EAAGpxE,UAAUghF,MAAQ,SAAgB96E,GACnC,IAAI2iF,EAAW3iF,EAAM,EACjB2iF,IAAU3iF,GAAOA,GAErBlJ,EAAOkJ,GAAO,UAGd,IADA,IAAIH,EAAQ,EACHjI,EAAIjB,KAAKmC,OAAS,EAAGlB,GAAK,EAAGA,IAAK,CACzC,IAAI8F,GAAqB,EAAhB/G,KAAKoiF,MAAMnhF,IAAkB,SAARiI,EAC9BlJ,KAAKoiF,MAAMnhF,GAAM8F,EAAIsC,EAAO,EAC5BH,EAAQnC,EAAIsC,EAId,OADArJ,KAAKmjF,SACE6I,EAAWhsF,KAAKwlF,OAASxlF,MAGlCu0E,EAAGpxE,UAAU6qF,KAAO,SAAe3kF,GACjC,OAAOrJ,KAAKusB,QAAQ43D,MAAM96E,IAG5BkrE,EAAGpxE,UAAUmrF,KAAO,SAAe5mF,GACjCvH,EAAsB,IAAfuH,EAAEy6E,UACThiF,GAAQuH,EAAEu8E,UAEV,IAAInmF,EAAIkC,KACJ2K,EAAIjD,EAAE6kB,QAGRzuB,EADiB,IAAfA,EAAEqkF,SACArkF,EAAEmwF,KAAKvmF,GAEP5J,EAAEyuB,QAaR,IATA,IAAIpc,EAAI,IAAIokE,EAAG,GACXnkE,EAAI,IAAImkE,EAAG,GAGXlkE,EAAI,IAAIkkE,EAAG,GACXjkE,EAAI,IAAIikE,EAAG,GAEXnoE,EAAI,EAEDtO,EAAEywF,UAAY5jF,EAAE4jF,UACrBzwF,EAAE4uF,OAAO,GACT/hF,EAAE+hF,OAAO,KACPtgF,EAMJ,IAHA,IAAIoiF,EAAK7jF,EAAE4hB,QACPkiE,EAAK3wF,EAAEyuB,SAEHzuB,EAAEmmF,UAAU,CAClB,IAAK,IAAIhjF,EAAI,EAAGytF,EAAK,EAAyB,KAArB5wF,EAAEskF,MAAM,GAAKsM,IAAaztF,EAAI,KAAMA,EAAGytF,IAAO,GACvE,GAAIztF,EAAI,EAEN,IADAnD,EAAE4uF,OAAOzrF,GACFA,KAAM,IACPkP,EAAEw+E,SAAWv+E,EAAEu+E,WACjBx+E,EAAEy2E,KAAK4H,GACPp+E,EAAEy2E,KAAK4H,IAGTt+E,EAAEu8E,OAAO,GACTt8E,EAAEs8E,OAAO,GAIb,IAAK,IAAI18E,EAAI,EAAG4+E,EAAK,EAAyB,KAArBjkF,EAAEy3E,MAAM,GAAKwM,IAAa5+E,EAAI,KAAMA,EAAG4+E,IAAO,GACvE,GAAI5+E,EAAI,EAEN,IADArF,EAAE+hF,OAAO18E,GACFA,KAAM,IACPK,EAAEs+E,SAAWr+E,EAAEq+E,WACjBt+E,EAAEu2E,KAAK4H,GACPl+E,EAAEu2E,KAAK4H,IAGTp+E,EAAEq8E,OAAO,GACTp8E,EAAEo8E,OAAO,GAIT5uF,EAAEugD,IAAI1zC,IAAM,GACd7M,EAAE+oF,KAAKl8E,GACPwF,EAAE02E,KAAKx2E,GACPD,EAAEy2E,KAAKv2E,KAEP3F,EAAEk8E,KAAK/oF,GACPuS,EAAEw2E,KAAK12E,GACPG,EAAEu2E,KAAKz2E,IAIX,MAAO,CACLjI,EAAGkI,EACHnI,EAAGoI,EACHu+E,IAAKlkF,EAAE0hF,OAAOjgF,KAOlBmoE,EAAGpxE,UAAU2rF,OAAS,SAAiBpnF,GACrCvH,EAAsB,IAAfuH,EAAEy6E,UACThiF,GAAQuH,EAAEu8E,UAEV,IAAI97E,EAAInI,KACJkI,EAAIR,EAAE6kB,QAGRpkB,EADiB,IAAfA,EAAEg6E,SACAh6E,EAAE8lF,KAAKvmF,GAEPS,EAAEokB,QAQR,IALA,IAuCIjlB,EAvCAuvD,EAAK,IAAI0d,EAAG,GACZzd,EAAK,IAAIyd,EAAG,GAEZwa,EAAQ7mF,EAAEqkB,QAEPpkB,EAAE6mF,KAAK,GAAK,GAAK9mF,EAAE8mF,KAAK,GAAK,GAAG,CACrC,IAAK,IAAI/tF,EAAI,EAAGytF,EAAK,EAAyB,KAArBvmF,EAAEi6E,MAAM,GAAKsM,IAAaztF,EAAI,KAAMA,EAAGytF,IAAO,GACvE,GAAIztF,EAAI,EAEN,IADAkH,EAAEukF,OAAOzrF,GACFA,KAAM,GACP41D,EAAG83B,SACL93B,EAAG+vB,KAAKmI,GAGVl4B,EAAG61B,OAAO,GAId,IAAK,IAAI18E,EAAI,EAAG4+E,EAAK,EAAyB,KAArB1mF,EAAEk6E,MAAM,GAAKwM,IAAa5+E,EAAI,KAAMA,EAAG4+E,IAAO,GACvE,GAAI5+E,EAAI,EAEN,IADA9H,EAAEwkF,OAAO18E,GACFA,KAAM,GACP8mD,EAAG63B,SACL73B,EAAG8vB,KAAKmI,GAGVj4B,EAAG41B,OAAO,GAIVvkF,EAAEk2C,IAAIn2C,IAAM,GACdC,EAAE0+E,KAAK3+E,GACP2uD,EAAGgwB,KAAK/vB,KAER5uD,EAAE2+E,KAAK1+E,GACP2uD,EAAG+vB,KAAKhwB,IAeZ,OATEvvD,EADgB,IAAda,EAAE6mF,KAAK,GACHn4B,EAEAC,GAGAk4B,KAAK,GAAK,GAChB1nF,EAAIs/E,KAAKl/E,GAGJJ,GAGTitE,EAAGpxE,UAAU0rF,IAAM,SAAcxlF,GAC/B,GAAIrJ,KAAKikF,SAAU,OAAO56E,EAAI+0C,MAC9B,GAAI/0C,EAAI46E,SAAU,OAAOjkF,KAAKo+C,MAE9B,IAAIj2C,EAAInI,KAAKusB,QACTrkB,EAAImB,EAAIkjB,QACZpkB,EAAEg6E,SAAW,EACbj6E,EAAEi6E,SAAW,EAGb,IAAK,IAAIh6D,EAAQ,EAAGhgB,EAAEomF,UAAYrmF,EAAEqmF,SAAUpmE,IAC5ChgB,EAAEukF,OAAO,GACTxkF,EAAEwkF,OAAO,GAGX,OAAG,CACD,KAAOvkF,EAAEomF,UACPpmF,EAAEukF,OAAO,GAEX,KAAOxkF,EAAEqmF,UACPrmF,EAAEwkF,OAAO,GAGX,IAAI1tF,EAAImJ,EAAEk2C,IAAIn2C,GACd,GAAIlJ,EAAI,EAAG,CAET,IAAIW,EAAIwI,EACRA,EAAID,EACJA,EAAIvI,OACC,GAAU,IAANX,GAAyB,IAAdkJ,EAAE8mF,KAAK,GAC3B,MAGF7mF,EAAE0+E,KAAK3+E,GAGT,OAAOA,EAAEmkF,OAAOlkE,IAIlBosD,EAAGpxE,UAAU8rF,KAAO,SAAe5lF,GACjC,OAAOrJ,KAAKsuF,KAAKjlF,GAAKlB,EAAE8lF,KAAK5kF,IAG/BkrE,EAAGpxE,UAAUorF,OAAS,WACpB,OAA+B,KAAP,EAAhBvuF,KAAKoiF,MAAM,KAGrB7N,EAAGpxE,UAAUwrF,MAAQ,WACnB,OAA+B,KAAP,EAAhB3uF,KAAKoiF,MAAM,KAIrB7N,EAAGpxE,UAAUirF,MAAQ,SAAgB/kF,GACnC,OAAOrJ,KAAKoiF,MAAM,GAAK/4E,GAIzBkrE,EAAGpxE,UAAU+rF,MAAQ,SAAgBxI,GACnCvmF,EAAsB,kBAARumF,GACd,IAAI1nF,EAAI0nF,EAAM,GACVjnF,GAAKinF,EAAM1nF,GAAK,GAChBggD,EAAI,GAAKhgD,EAGb,GAAIgB,KAAKmC,QAAU1C,EAGjB,OAFAO,KAAKyjF,QAAQhkF,EAAI,GACjBO,KAAKoiF,MAAM3iF,IAAMu/C,EACVh/C,KAKT,IADA,IAAIkJ,EAAQ81C,EACH/9C,EAAIxB,EAAa,IAAVyJ,GAAejI,EAAIjB,KAAKmC,OAAQlB,IAAK,CACnD,IAAI8F,EAAoB,EAAhB/G,KAAKoiF,MAAMnhF,GAEnBiI,GADAnC,GAAKmC,KACS,GACdnC,GAAK,SACL/G,KAAKoiF,MAAMnhF,GAAK8F,EAMlB,OAJc,IAAVmC,IACFlJ,KAAKoiF,MAAMnhF,GAAKiI,EAChBlJ,KAAKmC,UAEAnC,MAGTu0E,EAAGpxE,UAAU8gF,OAAS,WACpB,OAAuB,IAAhBjkF,KAAKmC,QAAkC,IAAlBnC,KAAKoiF,MAAM,IAGzC7N,EAAGpxE,UAAU6rF,KAAO,SAAe3lF,GACjC,IAOI/B,EAPA66E,EAAW94E,EAAM,EAErB,GAAsB,IAAlBrJ,KAAKmiF,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBniF,KAAKmiF,UAAkBA,EAAU,OAAO,EAK5C,GAHAniF,KAAKmjF,SAGDnjF,KAAKmC,OAAS,EAChBmF,EAAM,MACD,CACD66E,IACF94E,GAAOA,GAGTlJ,EAAOkJ,GAAO,SAAW,qBAEzB,IAAItC,EAAoB,EAAhB/G,KAAKoiF,MAAM,GACnB96E,EAAMP,IAAMsC,EAAM,EAAItC,EAAIsC,GAAO,EAAI,EAEvC,OAAsB,IAAlBrJ,KAAKmiF,SAA8B,GAAN76E,EAC1BA,GAOTitE,EAAGpxE,UAAUk7C,IAAM,SAAch1C,GAC/B,GAAsB,IAAlBrJ,KAAKmiF,UAAmC,IAAjB94E,EAAI84E,SAAgB,OAAQ,EACvD,GAAsB,IAAlBniF,KAAKmiF,UAAmC,IAAjB94E,EAAI84E,SAAgB,OAAO,EAEtD,IAAI76E,EAAMtH,KAAKmvF,KAAK9lF,GACpB,OAAsB,IAAlBrJ,KAAKmiF,SAA8B,GAAN76E,EAC1BA,GAITitE,EAAGpxE,UAAUgsF,KAAO,SAAe9lF,GAEjC,GAAIrJ,KAAKmC,OAASkH,EAAIlH,OAAQ,OAAO,EACrC,GAAInC,KAAKmC,OAASkH,EAAIlH,OAAQ,OAAQ,EAGtC,IADA,IAAImF,EAAM,EACDrG,EAAIjB,KAAKmC,OAAS,EAAGlB,GAAK,EAAGA,IAAK,CACzC,IAAIkH,EAAoB,EAAhBnI,KAAKoiF,MAAMnhF,GACfiH,EAAmB,EAAfmB,EAAI+4E,MAAMnhF,GAElB,GAAIkH,IAAMD,EAAV,CACIC,EAAID,EACNZ,GAAO,EACEa,EAAID,IACbZ,EAAM,GAER,OAEF,OAAOA,GAGTitE,EAAGpxE,UAAUisF,IAAM,SAAc/lF,GAC/B,OAA0B,IAAnBrJ,KAAKgvF,KAAK3lF,IAGnBkrE,EAAGpxE,UAAUg8C,GAAK,SAAa91C,GAC7B,OAAyB,IAAlBrJ,KAAKq+C,IAAIh1C,IAGlBkrE,EAAGpxE,UAAUksF,KAAO,SAAehmF,GACjC,OAAOrJ,KAAKgvF,KAAK3lF,IAAQ,GAG3BkrE,EAAGpxE,UAAUi8C,IAAM,SAAc/1C,GAC/B,OAAOrJ,KAAKq+C,IAAIh1C,IAAQ,GAG1BkrE,EAAGpxE,UAAUmsF,IAAM,SAAcjmF,GAC/B,OAA2B,IAApBrJ,KAAKgvF,KAAK3lF,IAGnBkrE,EAAGpxE,UAAUk8C,GAAK,SAAah2C,GAC7B,OAA0B,IAAnBrJ,KAAKq+C,IAAIh1C,IAGlBkrE,EAAGpxE,UAAUosF,KAAO,SAAelmF,GACjC,OAAOrJ,KAAKgvF,KAAK3lF,IAAQ,GAG3BkrE,EAAGpxE,UAAUm8C,IAAM,SAAcj2C,GAC/B,OAAOrJ,KAAKq+C,IAAIh1C,IAAQ,GAG1BkrE,EAAGpxE,UAAUqsF,IAAM,SAAcnmF,GAC/B,OAA0B,IAAnBrJ,KAAKgvF,KAAK3lF,IAGnBkrE,EAAGpxE,UAAUsU,GAAK,SAAapO,GAC7B,OAAyB,IAAlBrJ,KAAKq+C,IAAIh1C,IAOlBkrE,EAAG8N,IAAM,SAAch5E,GACrB,OAAO,IAAIomF,EAAIpmF,IAGjBkrE,EAAGpxE,UAAUusF,MAAQ,SAAgBtwF,GAGnC,OAFAe,GAAQH,KAAKqiF,IAAK,yCAClBliF,EAAyB,IAAlBH,KAAKmiF,SAAgB,iCACrB/iF,EAAIuwF,UAAU3vF,MAAM4vF,UAAUxwF,IAGvCm1E,EAAGpxE,UAAU0sF,QAAU,WAErB,OADA1vF,EAAOH,KAAKqiF,IAAK,wDACVriF,KAAKqiF,IAAIyN,YAAY9vF,OAG9Bu0E,EAAGpxE,UAAUysF,UAAY,SAAoBxwF,GAE3C,OADAY,KAAKqiF,IAAMjjF,EACJY,MAGTu0E,EAAGpxE,UAAU4sF,SAAW,SAAmB3wF,GAEzC,OADAe,GAAQH,KAAKqiF,IAAK,yCACXriF,KAAK4vF,UAAUxwF,IAGxBm1E,EAAGpxE,UAAU6sF,OAAS,SAAiB3mF,GAErC,OADAlJ,EAAOH,KAAKqiF,IAAK,sCACVriF,KAAKqiF,IAAI1kE,IAAI3d,KAAMqJ,IAG5BkrE,EAAGpxE,UAAU8sF,QAAU,SAAkB5mF,GAEvC,OADAlJ,EAAOH,KAAKqiF,IAAK,uCACVriF,KAAKqiF,IAAIuE,KAAK5mF,KAAMqJ,IAG7BkrE,EAAGpxE,UAAU+sF,OAAS,SAAiB7mF,GAErC,OADAlJ,EAAOH,KAAKqiF,IAAK,sCACVriF,KAAKqiF,IAAIp+C,IAAIjkC,KAAMqJ,IAG5BkrE,EAAGpxE,UAAUgtF,QAAU,SAAkB9mF,GAEvC,OADAlJ,EAAOH,KAAKqiF,IAAK,uCACVriF,KAAKqiF,IAAIwE,KAAK7mF,KAAMqJ,IAG7BkrE,EAAGpxE,UAAUitF,OAAS,SAAiB/mF,GAErC,OADAlJ,EAAOH,KAAKqiF,IAAK,sCACVriF,KAAKqiF,IAAIgO,IAAIrwF,KAAMqJ,IAG5BkrE,EAAGpxE,UAAUmtF,OAAS,SAAiBjnF,GAGrC,OAFAlJ,EAAOH,KAAKqiF,IAAK,sCACjBriF,KAAKqiF,IAAIkO,SAASvwF,KAAMqJ,GACjBrJ,KAAKqiF,IAAI/sC,IAAIt1C,KAAMqJ,IAG5BkrE,EAAGpxE,UAAUqtF,QAAU,SAAkBnnF,GAGvC,OAFAlJ,EAAOH,KAAKqiF,IAAK,sCACjBriF,KAAKqiF,IAAIkO,SAASvwF,KAAMqJ,GACjBrJ,KAAKqiF,IAAI8F,KAAKnoF,KAAMqJ,IAG7BkrE,EAAGpxE,UAAUstF,OAAS,WAGpB,OAFAtwF,EAAOH,KAAKqiF,IAAK,sCACjBriF,KAAKqiF,IAAIqO,SAAS1wF,MACXA,KAAKqiF,IAAI6J,IAAIlsF,OAGtBu0E,EAAGpxE,UAAUwtF,QAAU,WAGrB,OAFAxwF,EAAOH,KAAKqiF,IAAK,uCACjBriF,KAAKqiF,IAAIqO,SAAS1wF,MACXA,KAAKqiF,IAAI8J,KAAKnsF,OAIvBu0E,EAAGpxE,UAAUytF,QAAU,WAGrB,OAFAzwF,EAAOH,KAAKqiF,IAAK,uCACjBriF,KAAKqiF,IAAIqO,SAAS1wF,MACXA,KAAKqiF,IAAIniC,KAAKlgD,OAGvBu0E,EAAGpxE,UAAU0tF,QAAU,WAGrB,OAFA1wF,EAAOH,KAAKqiF,IAAK,uCACjBriF,KAAKqiF,IAAIqO,SAAS1wF,MACXA,KAAKqiF,IAAI4M,KAAKjvF,OAIvBu0E,EAAGpxE,UAAU2tF,OAAS,WAGpB,OAFA3wF,EAAOH,KAAKqiF,IAAK,sCACjBriF,KAAKqiF,IAAIqO,SAAS1wF,MACXA,KAAKqiF,IAAIqD,IAAI1lF,OAGtBu0E,EAAGpxE,UAAU4tF,OAAS,SAAiB1nF,GAGrC,OAFAlJ,EAAOH,KAAKqiF,MAAQh5E,EAAIg5E,IAAK,qBAC7BriF,KAAKqiF,IAAIqO,SAAS1wF,MACXA,KAAKqiF,IAAIxsC,IAAI71C,KAAMqJ,IAI5B,IAAI2nF,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQzwF,EAAM8G,GAErB1H,KAAKY,KAAOA,EACZZ,KAAK0H,EAAI,IAAI6sE,EAAG7sE,EAAG,IACnB1H,KAAKsuB,EAAItuB,KAAK0H,EAAEs9E,YAChBhlF,KAAKN,EAAI,IAAI60E,EAAG,GAAG8X,OAAOrsF,KAAKsuB,GAAGu4D,KAAK7mF,KAAK0H,GAE5C1H,KAAKi7C,IAAMj7C,KAAKsxF,OAiDlB,SAASC,IACPF,EAAOnsF,KACLlF,KACA,OACA,2EA+DJ,SAASwxF,IACPH,EAAOnsF,KACLlF,KACA,OACA,kEAIJ,SAASyxF,IACPJ,EAAOnsF,KACLlF,KACA,OACA,yDAIJ,SAAS0xF,IAEPL,EAAOnsF,KACLlF,KACA,QACA,uEA8CJ,SAASyvF,EAAKxnF,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAI0pF,EAAQpd,EAAGqd,OAAO3pF,GACtBjI,KAAKiI,EAAI0pF,EAAMjqF,EACf1H,KAAK2xF,MAAQA,OAEbxxF,EAAO8H,EAAEmnF,IAAI,GAAI,kCACjBpvF,KAAKiI,EAAIA,EACTjI,KAAK2xF,MAAQ,KAoOjB,SAASE,EAAM5pF,GACbwnF,EAAIvqF,KAAKlF,KAAMiI,GAEfjI,KAAKmoB,MAAQnoB,KAAKiI,EAAE+8E,YAChBhlF,KAAKmoB,MAAQ,KAAO,IACtBnoB,KAAKmoB,OAAS,GAAMnoB,KAAKmoB,MAAQ,IAGnCnoB,KAAKhB,EAAI,IAAIu1E,EAAG,GAAG8X,OAAOrsF,KAAKmoB,OAC/BnoB,KAAK2+D,GAAK3+D,KAAK8xF,KAAK9xF,KAAKhB,EAAEktF,OAC3BlsF,KAAK+xF,KAAO/xF,KAAKhB,EAAE8vF,OAAO9uF,KAAKiI,GAE/BjI,KAAKgyF,KAAOhyF,KAAK+xF,KAAKz8C,IAAIt1C,KAAKhB,GAAGquF,MAAM,GAAG7uC,IAAIx+C,KAAKiI,GACpDjI,KAAKgyF,KAAOhyF,KAAKgyF,KAAK/D,KAAKjuF,KAAKhB,GAChCgB,KAAKgyF,KAAOhyF,KAAKhB,EAAEilC,IAAIjkC,KAAKgyF,MA9a9BX,EAAOluF,UAAUmuF,KAAO,WACtB,IAAIr2C,EAAM,IAAIs5B,EAAG,MAEjB,OADAt5B,EAAImnC,MAAQ,IAAI/iF,MAAM+C,KAAKozE,KAAKx1E,KAAKsuB,EAAI,KAClC2sB,GAGTo2C,EAAOluF,UAAU8uF,QAAU,SAAkB5oF,GAG3C,IACI6oF,EADAlzF,EAAIqK,EAGR,GACErJ,KAAK6rB,MAAM7sB,EAAGgB,KAAKi7C,KAGnBi3C,GADAlzF,GADAA,EAAIgB,KAAKmyF,MAAMnzF,IACT4nF,KAAK5mF,KAAKi7C,MACP+pC,kBACFkN,EAAOlyF,KAAKsuB,GAErB,IAAI+vB,EAAM6zC,EAAOlyF,KAAKsuB,GAAK,EAAItvB,EAAEmwF,KAAKnvF,KAAK0H,GAgB3C,OAfY,IAAR22C,GACFr/C,EAAEojF,MAAM,GAAK,EACbpjF,EAAEmD,OAAS,GACFk8C,EAAM,EACfr/C,EAAE6nF,KAAK7mF,KAAK0H,QAEIrJ,IAAZW,EAAEozF,MAEJpzF,EAAEozF,QAGFpzF,EAAEmkF,SAICnkF,GAGTqyF,EAAOluF,UAAU0oB,MAAQ,SAAgB1tB,EAAOo2C,GAC9Cp2C,EAAMuuF,OAAO1sF,KAAKsuB,EAAG,EAAGimB,IAG1B88C,EAAOluF,UAAUgvF,MAAQ,SAAgB9oF,GACvC,OAAOA,EAAI8+E,KAAKnoF,KAAKN,IASvBgH,EAAS6qF,EAAMF,GAEfE,EAAKpuF,UAAU0oB,MAAQ,SAAgB1tB,EAAOioE,GAK5C,IAHA,IAAIjnE,EAAO,QAEPkzF,EAASjwF,KAAK8vC,IAAI/zC,EAAMgE,OAAQ,GAC3BlB,EAAI,EAAGA,EAAIoxF,EAAQpxF,IAC1BmlE,EAAOgc,MAAMnhF,GAAK9C,EAAMikF,MAAMnhF,GAIhC,GAFAmlE,EAAOjkE,OAASkwF,EAEZl0F,EAAMgE,QAAU,EAGlB,OAFAhE,EAAMikF,MAAM,GAAK,OACjBjkF,EAAMgE,OAAS,GAKjB,IAAImwF,EAAOn0F,EAAMikF,MAAM,GAGvB,IAFAhc,EAAOgc,MAAMhc,EAAOjkE,UAAYmwF,EAAOnzF,EAElC8B,EAAI,GAAIA,EAAI9C,EAAMgE,OAAQlB,IAAK,CAClC,IAAIinB,EAAwB,EAAjB/pB,EAAMikF,MAAMnhF,GACvB9C,EAAMikF,MAAMnhF,EAAI,KAAQinB,EAAO/oB,IAAS,EAAMmzF,IAAS,GACvDA,EAAOpqE,EAEToqE,KAAU,GACVn0F,EAAMikF,MAAMnhF,EAAI,IAAMqxF,EACT,IAATA,GAAcn0F,EAAMgE,OAAS,GAC/BhE,EAAMgE,QAAU,GAEhBhE,EAAMgE,QAAU,GAIpBovF,EAAKpuF,UAAUgvF,MAAQ,SAAgB9oF,GAErCA,EAAI+4E,MAAM/4E,EAAIlH,QAAU,EACxBkH,EAAI+4E,MAAM/4E,EAAIlH,OAAS,GAAK,EAC5BkH,EAAIlH,QAAU,EAId,IADA,IAAIwG,EAAK,EACA1H,EAAI,EAAGA,EAAIoI,EAAIlH,OAAQlB,IAAK,CACnC,IAAI8F,EAAmB,EAAfsC,EAAI+4E,MAAMnhF,GAClB0H,GAAU,IAAJ5B,EACNsC,EAAI+4E,MAAMnhF,GAAU,SAAL0H,EACfA,EAAS,GAAJ5B,GAAa4B,EAAK,SAAa,GAUtC,OANkC,IAA9BU,EAAI+4E,MAAM/4E,EAAIlH,OAAS,KACzBkH,EAAIlH,SAC8B,IAA9BkH,EAAI+4E,MAAM/4E,EAAIlH,OAAS,IACzBkH,EAAIlH,UAGDkH,GAST3C,EAAS8qF,EAAMH,GAQf3qF,EAAS+qF,EAAMJ,GASf3qF,EAASgrF,EAAQL,GAEjBK,EAAOvuF,UAAUgvF,MAAQ,SAAgB9oF,GAGvC,IADA,IAAIH,EAAQ,EACHjI,EAAI,EAAGA,EAAIoI,EAAIlH,OAAQlB,IAAK,CACnC,IAAI2H,EAA0B,IAAL,EAAfS,EAAI+4E,MAAMnhF,IAAiBiI,EACjCP,EAAU,SAALC,EACTA,KAAQ,GAERS,EAAI+4E,MAAMnhF,GAAK0H,EACfO,EAAQN,EAKV,OAHc,IAAVM,IACFG,EAAI+4E,MAAM/4E,EAAIlH,UAAY+G,GAErBG,GAITkrE,EAAGqd,OAAS,SAAgBhxF,GAE1B,GAAIowF,EAAOpwF,GAAO,OAAOowF,EAAOpwF,GAEhC,IAAI+wF,EACJ,GAAa,SAAT/wF,EACF+wF,EAAQ,IAAIJ,OACP,GAAa,SAAT3wF,EACT+wF,EAAQ,IAAIH,OACP,GAAa,SAAT5wF,EACT+wF,EAAQ,IAAIF,MACP,IAAa,WAAT7wF,EAGT,MAAM,IAAIqF,MAAM,iBAAmBrF,GAFnC+wF,EAAQ,IAAID,EAMd,OAFAV,EAAOpwF,GAAQ+wF,EAERA,GAkBTlC,EAAItsF,UAAUutF,SAAW,SAAmBvoF,GAC1ChI,EAAsB,IAAfgI,EAAEg6E,SAAgB,iCACzBhiF,EAAOgI,EAAEk6E,IAAK,oCAGhBoN,EAAItsF,UAAUotF,SAAW,SAAmBpoF,EAAGD,GAC7C/H,EAAqC,KAA7BgI,EAAEg6E,SAAWj6E,EAAEi6E,UAAiB,iCACxChiF,EAAOgI,EAAEk6E,KAAOl6E,EAAEk6E,MAAQn6E,EAAEm6E,IAC1B,oCAGJoN,EAAItsF,UAAU2uF,KAAO,SAAe3pF,GAClC,OAAInI,KAAK2xF,MAAc3xF,KAAK2xF,MAAMM,QAAQ9pF,GAAGynF,UAAU5vF,OAEvD4iF,EAAKz6E,EAAGA,EAAE8lF,KAAKjuF,KAAKiI,GAAG2nF,UAAU5vF,OAC1BmI,IAGTsnF,EAAItsF,UAAUuiF,IAAM,SAAcv9E,GAChC,OAAIA,EAAE87E,SACG97E,EAAEokB,QAGJvsB,KAAKiI,EAAEg8B,IAAI97B,GAAGynF,UAAU5vF,OAGjCyvF,EAAItsF,UAAUwa,IAAM,SAAcxV,EAAGD,GACnClI,KAAKuwF,SAASpoF,EAAGD,GAEjB,IAAIZ,EAAMa,EAAEwV,IAAIzV,GAIhB,OAHIZ,EAAI+2C,IAAIr+C,KAAKiI,IAAM,GACrBX,EAAIu/E,KAAK7mF,KAAKiI,GAETX,EAAIsoF,UAAU5vF,OAGvByvF,EAAItsF,UAAUyjF,KAAO,SAAez+E,EAAGD,GACrClI,KAAKuwF,SAASpoF,EAAGD,GAEjB,IAAIZ,EAAMa,EAAEy+E,KAAK1+E,GAIjB,OAHIZ,EAAI+2C,IAAIr+C,KAAKiI,IAAM,GACrBX,EAAIu/E,KAAK7mF,KAAKiI,GAETX,GAGTmoF,EAAItsF,UAAU8gC,IAAM,SAAc97B,EAAGD,GACnClI,KAAKuwF,SAASpoF,EAAGD,GAEjB,IAAIZ,EAAMa,EAAE87B,IAAI/7B,GAIhB,OAHIZ,EAAI0nF,KAAK,GAAK,GAChB1nF,EAAIs/E,KAAK5mF,KAAKiI,GAETX,EAAIsoF,UAAU5vF,OAGvByvF,EAAItsF,UAAU0jF,KAAO,SAAe1+E,EAAGD,GACrClI,KAAKuwF,SAASpoF,EAAGD,GAEjB,IAAIZ,EAAMa,EAAE0+E,KAAK3+E,GAIjB,OAHIZ,EAAI0nF,KAAK,GAAK,GAChB1nF,EAAIs/E,KAAK5mF,KAAKiI,GAETX,GAGTmoF,EAAItsF,UAAUktF,IAAM,SAAcloF,EAAGkB,GAEnC,OADArJ,KAAK0wF,SAASvoF,GACPnI,KAAK8xF,KAAK3pF,EAAE6kF,MAAM3jF,KAG3BomF,EAAItsF,UAAUglF,KAAO,SAAehgF,EAAGD,GAErC,OADAlI,KAAKuwF,SAASpoF,EAAGD,GACVlI,KAAK8xF,KAAK3pF,EAAEggF,KAAKjgF,KAG1BunF,EAAItsF,UAAUmyC,IAAM,SAAcntC,EAAGD,GAEnC,OADAlI,KAAKuwF,SAASpoF,EAAGD,GACVlI,KAAK8xF,KAAK3pF,EAAEmtC,IAAIptC,KAGzBunF,EAAItsF,UAAUgpF,KAAO,SAAehkF,GAClC,OAAOnI,KAAKmoF,KAAKhgF,EAAGA,EAAEokB,UAGxBkjE,EAAItsF,UAAU+oF,IAAM,SAAc/jF,GAChC,OAAOnI,KAAKs1C,IAAIntC,EAAGA,IAGrBsnF,EAAItsF,UAAU+8C,KAAO,SAAe/3C,GAClC,GAAIA,EAAE87E,SAAU,OAAO97E,EAAEokB,QAEzB,IAAIgmE,EAAOvyF,KAAKiI,EAAEmmF,MAAM,GAIxB,GAHAjuF,EAAOoyF,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI18C,EAAM71C,KAAKiI,EAAE0V,IAAI,IAAI42D,EAAG,IAAImY,OAAO,GACvC,OAAO1sF,KAAK61C,IAAI1tC,EAAG0tC,GAQrB,IAFA,IAAImJ,EAAIh/C,KAAKiI,EAAEslF,KAAK,GAChB9tF,EAAI,GACAu/C,EAAEilC,UAA2B,IAAfjlC,EAAEovC,MAAM,IAC5B3uF,IACAu/C,EAAE0tC,OAAO,GAEXvsF,GAAQ6+C,EAAEilC,UAEV,IAAIjkC,EAAM,IAAIu0B,EAAG,GAAGmb,MAAM1vF,MACtBwyF,EAAOxyC,EAAI8wC,SAIX2B,EAAOzyF,KAAKiI,EAAEslF,KAAK,GAAGb,OAAO,GAC7B9hF,EAAI5K,KAAKiI,EAAE+8E,YAGf,IAFAp6E,EAAI,IAAI2pE,EAAG,EAAI3pE,EAAIA,GAAG8kF,MAAM1vF,MAEW,IAAhCA,KAAK61C,IAAIjrC,EAAG6nF,GAAMp0C,IAAIm0C,IAC3B5nF,EAAEqlF,QAAQuC,GAOZ,IAJA,IAAI7qF,EAAI3H,KAAK61C,IAAIjrC,EAAGo0C,GAChBhgD,EAAIgB,KAAK61C,IAAI1tC,EAAG62C,EAAEsuC,KAAK,GAAGZ,OAAO,IACjC/sF,EAAIK,KAAK61C,IAAI1tC,EAAG62C,GAChB/2C,EAAIxI,EACc,IAAfE,EAAE0+C,IAAI2B,IAAY,CAEvB,IADA,IAAI/E,EAAMt7C,EACDsB,EAAI,EAAoB,IAAjBg6C,EAAIoD,IAAI2B,GAAY/+C,IAClCg6C,EAAMA,EAAIw1C,SAEZtwF,EAAOc,EAAIgH,GACX,IAAIC,EAAIlI,KAAK61C,IAAIluC,EAAG,IAAI4sE,EAAG,GAAG8X,OAAOpkF,EAAIhH,EAAI,IAE7CjC,EAAIA,EAAEsxF,OAAOpoF,GACbP,EAAIO,EAAEuoF,SACN9wF,EAAIA,EAAE2wF,OAAO3oF,GACbM,EAAIhH,EAGN,OAAOjC,GAGTywF,EAAItsF,UAAU8rF,KAAO,SAAe9mF,GAClC,IAAIuqF,EAAMvqF,EAAE2mF,OAAO9uF,KAAKiI,GACxB,OAAqB,IAAjByqF,EAAIvQ,UACNuQ,EAAIvQ,SAAW,EACRniF,KAAK8xF,KAAKY,GAAK5B,UAEf9wF,KAAK8xF,KAAKY,IAIrBjD,EAAItsF,UAAU0yC,IAAM,SAAc1tC,EAAGkB,GACnC,GAAIA,EAAI46E,SAAU,OAAO,IAAI1P,EAAG,GAAGmb,MAAM1vF,MACzC,GAAoB,IAAhBqJ,EAAI2lF,KAAK,GAAU,OAAO7mF,EAAEokB,QAEhC,IACIomE,EAAM,IAAItzF,MAAM,IACpBszF,EAAI,GAAK,IAAIpe,EAAG,GAAGmb,MAAM1vF,MACzB2yF,EAAI,GAAKxqF,EACT,IAAK,IAAIlH,EAAI,EAAGA,EAAI0xF,EAAIxwF,OAAQlB,IAC9B0xF,EAAI1xF,GAAKjB,KAAKs1C,IAAIq9C,EAAI1xF,EAAI,GAAIkH,GAGhC,IAAIb,EAAMqrF,EAAI,GACVz8D,EAAU,EACV08D,EAAa,EACb9qF,EAAQuB,EAAI27E,YAAc,GAK9B,IAJc,IAAVl9E,IACFA,EAAQ,IAGL7G,EAAIoI,EAAIlH,OAAS,EAAGlB,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIgG,EAAOoC,EAAI+4E,MAAMnhF,GACZ+O,EAAIlI,EAAQ,EAAGkI,GAAK,EAAGA,IAAK,CACnC,IAAI02E,EAAOz/E,GAAQ+I,EAAK,EACpB1I,IAAQqrF,EAAI,KACdrrF,EAAMtH,KAAKksF,IAAI5kF,IAGL,IAARo/E,GAAyB,IAAZxwD,GAKjBA,IAAY,EACZA,GAAWwwD,GA9BE,MA+BbkM,GACwC,IAAN3xF,GAAiB,IAAN+O,KAE7C1I,EAAMtH,KAAKs1C,IAAIhuC,EAAKqrF,EAAIz8D,IACxB08D,EAAa,EACb18D,EAAU,IAXR08D,EAAa,EAajB9qF,EAAQ,GAGV,OAAOR,GAGTmoF,EAAItsF,UAAUwsF,UAAY,SAAoBtmF,GAC5C,IAAIrK,EAAIqK,EAAI4kF,KAAKjuF,KAAKiI,GAEtB,OAAOjJ,IAAMqK,EAAMrK,EAAEutB,QAAUvtB,GAGjCywF,EAAItsF,UAAU2sF,YAAc,SAAsBzmF,GAChD,IAAI/B,EAAM+B,EAAIkjB,QAEd,OADAjlB,EAAI+6E,IAAM,KACH/6E,GAOTitE,EAAGse,KAAO,SAAexpF,GACvB,OAAO,IAAIwoF,EAAKxoF,IAmBlB3C,EAASmrF,EAAMpC,GAEfoC,EAAK1uF,UAAUwsF,UAAY,SAAoBtmF,GAC7C,OAAOrJ,KAAK8xF,KAAKzoF,EAAI2jF,MAAMhtF,KAAKmoB,SAGlC0pE,EAAK1uF,UAAU2sF,YAAc,SAAsBzmF,GACjD,IAAIrK,EAAIgB,KAAK8xF,KAAKzoF,EAAIisC,IAAIt1C,KAAK+xF,OAE/B,OADA/yF,EAAEqjF,IAAM,KACDrjF,GAGT6yF,EAAK1uF,UAAUglF,KAAO,SAAehgF,EAAGD,GACtC,GAAIC,EAAE87E,UAAY/7E,EAAE+7E,SAGlB,OAFA97E,EAAEi6E,MAAM,GAAK,EACbj6E,EAAEhG,OAAS,EACJgG,EAGT,IAAIxI,EAAIwI,EAAEggF,KAAKjgF,GACXP,EAAIhI,EAAEytF,MAAMptF,KAAKmoB,OAAOmtB,IAAIt1C,KAAKgyF,MAAM7E,OAAOntF,KAAKmoB,OAAOmtB,IAAIt1C,KAAKiI,GACnE0tD,EAAIh2D,EAAEknF,KAAKl/E,GAAG+kF,OAAO1sF,KAAKmoB,OAC1B7gB,EAAMquD,EAQV,OANIA,EAAEtX,IAAIr+C,KAAKiI,IAAM,EACnBX,EAAMquD,EAAEkxB,KAAK7mF,KAAKiI,GACT0tD,EAAEq5B,KAAK,GAAK,IACrB1nF,EAAMquD,EAAEixB,KAAK5mF,KAAKiI,IAGbX,EAAIsoF,UAAU5vF,OAGvB6xF,EAAK1uF,UAAUmyC,IAAM,SAAcntC,EAAGD,GACpC,GAAIC,EAAE87E,UAAY/7E,EAAE+7E,SAAU,OAAO,IAAI1P,EAAG,GAAGqb,UAAU5vF,MAEzD,IAAIL,EAAIwI,EAAEmtC,IAAIptC,GACVP,EAAIhI,EAAEytF,MAAMptF,KAAKmoB,OAAOmtB,IAAIt1C,KAAKgyF,MAAM7E,OAAOntF,KAAKmoB,OAAOmtB,IAAIt1C,KAAKiI,GACnE0tD,EAAIh2D,EAAEknF,KAAKl/E,GAAG+kF,OAAO1sF,KAAKmoB,OAC1B7gB,EAAMquD,EAOV,OANIA,EAAEtX,IAAIr+C,KAAKiI,IAAM,EACnBX,EAAMquD,EAAEkxB,KAAK7mF,KAAKiI,GACT0tD,EAAEq5B,KAAK,GAAK,IACrB1nF,EAAMquD,EAAEixB,KAAK5mF,KAAKiI,IAGbX,EAAIsoF,UAAU5vF,OAGvB6xF,EAAK1uF,UAAU8rF,KAAO,SAAe9mF,GAGnC,OADUnI,KAAK8xF,KAAK3pF,EAAE2mF,OAAO9uF,KAAKiI,GAAGqtC,IAAIt1C,KAAK2+D,KACnCixB,UAAU5vF,OAx9GzB,CA09GoC+C,EAAQ/C,Q,mDC19G5C,qDAEe,SAAS8yF,EAAWC,EAAMC,GAMvC,OAAOhmC,WAAc,WACnB,OAAY,MAAR+lC,GAAwB,MAARC,EACX,KAGF,SAAUC,GACfC,YAAOH,EAAME,GACbC,YAAOF,EAAMC,MAEd,CAACF,EAAMC,M,6BCjBZ,+CAKe,SAASr2C,EAAW36C,GACjC,GAAsB,kBAAXA,EACT,MAAM,IAAIiE,MAA6GktF,YAAuB,IAGhJ,OAAOnxF,EAAOm8C,OAAO,GAAG1yB,cAAgBzpB,EAAOqF,MAAM,K,6BCVxC,SAAS+rF,EAAuB5uF,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI6uF,eAAe,6DAG3B,OAAO7uF,EALT,mC,gBCMAzB,EAAOC,QANP,SAAyB7B,EAAUuE,GACjC,KAAMvE,aAAoBuE,GACxB,MAAM,IAAI9H,UAAU,sCAIUmF,EAAOC,QAAQswF,YAAa,EAAMvwF,EAAOC,QAAiB,QAAID,EAAOC,S,6BCHxF,SAASq+C,EAAQ98C,EAAItF,GAChC,IAAI+jD,EAAQ/jD,GAAWA,EAAQ+jD,MAAQ/jD,EAAQ+jD,MAAQuwC,EACnDC,EAAav0F,GAAWA,EAAQu0F,WAAav0F,EAAQu0F,WAAaC,EAEtE,OADex0F,GAAWA,EAAQgiF,SAAWhiF,EAAQgiF,SAAWyS,GAChDnvF,EAAI,CAChBy+C,MAAOA,EACPwwC,WAAYA,IASpB,SAASG,EAAQpvF,EAAIy+C,EAAOwwC,EAAYtvF,GACpC,IAJiBlG,EAIb41F,EAHa,OADA51F,EAIUkG,IAHe,kBAAVlG,GAAuC,mBAAVA,EAG3BkG,EAAMsvF,EAAWtvF,GAC/C2vF,EAAgB7wC,EAAM74B,IAAIypE,GAK9B,MAJ6B,qBAAlBC,IACPA,EAAgBtvF,EAAGW,KAAKlF,KAAMkE,GAC9B8+C,EAAMz5B,IAAIqqE,EAAUC,IAEjBA,EAEX,SAAS1S,EAAS58E,EAAIy+C,EAAOwwC,GACzB,IAAI/uF,EAAOpF,MAAM8D,UAAUkE,MAAMnC,KAAKR,UAAW,GAC7CkvF,EAAWJ,EAAW/uF,GACtBovF,EAAgB7wC,EAAM74B,IAAIypE,GAK9B,MAJ6B,qBAAlBC,IACPA,EAAgBtvF,EAAGI,MAAM3E,KAAMyE,GAC/Bu+C,EAAMz5B,IAAIqqE,EAAUC,IAEjBA,EAEX,SAASC,EAASvvF,EAAI/F,EAASyiF,EAAUj+B,EAAOrsC,GAC5C,OAAOsqE,EAASt8B,KAAKnmD,EAAS+F,EAAIy+C,EAAOrsC,GAE7C,SAAS+8E,EAAgBnvF,EAAItF,GAEzB,OAAO60F,EAASvvF,EAAIvE,KADS,IAAduE,EAAGpC,OAAewxF,EAAUxS,EACPliF,EAAQ+jD,MAAM5iD,SAAUnB,EAAQu0F,YA1CxE,oEAqDA,IAAIC,EAAoB,WACpB,OAAOx1F,KAAKuW,UAAU9P,YAK1B,SAASqvF,IACL/zF,KAAKgjD,MAAQtlD,OAAO0C,OAAO,MAE/B2zF,EAA4B5wF,UAAUgnB,IAAM,SAAUrrB,GAClD,OAAOkB,KAAKgjD,MAAMlkD,IAEtBi1F,EAA4B5wF,UAAUomB,IAAM,SAAUzqB,EAAKd,GACvDgC,KAAKgjD,MAAMlkD,GAAOd,GAEtB,IAAIu1F,EAAe,CACfnzF,OAAQ,WAEJ,OAAO,IAAI2zF,IAGR7S,EAAa,CACpBC,SA/BJ,SAA0B58E,EAAItF,GAC1B,OAAO60F,EAASvvF,EAAIvE,KAAMmhF,EAAUliF,EAAQ+jD,MAAM5iD,SAAUnB,EAAQu0F,aA+BpEG,QA7BJ,SAAyBpvF,EAAItF,GACzB,OAAO60F,EAASvvF,EAAIvE,KAAM2zF,EAAS10F,EAAQ+jD,MAAM5iD,SAAUnB,EAAQu0F,e,cChDvE,SAASruF,EAAkBJ,EAAQlF,GACjC,IAAK,IAAIoB,EAAI,EAAGA,EAAIpB,EAAMsC,OAAQlB,IAAK,CACrC,IAAImE,EAAavF,EAAMoB,GACvBmE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjD7H,OAAO8H,eAAeT,EAAQK,EAAWtG,IAAKsG,IAalDrC,EAAOC,QATP,SAAsB0C,EAAaC,EAAYC,GAM7C,OALID,GAAYR,EAAkBO,EAAYvC,UAAWwC,GACrDC,GAAaT,EAAkBO,EAAaE,GAChDlI,OAAO8H,eAAeE,EAAa,YAAa,CAC9CH,UAAU,IAELG,GAGsB3C,EAAOC,QAAQswF,YAAa,EAAMvwF,EAAOC,QAAiB,QAAID,EAAOC,S,6BClBpG,IAAIgxF,EAAmBh0F,MAAQA,KAAKg0F,iBAAoB,SAAUn0C,GAC9D,OAAQA,GAAOA,EAAIyzC,WAAczzC,EAAM,CAAE,QAAWA,IAExDniD,OAAO8H,eAAexC,EAAS,aAAc,CAAEhF,OAAO,IACtD,IAAMi2F,EAAiBD,EAAgB/wF,EAAQ,MAEzCixF,EAAc,IADMjxF,EAAQ,KACQkxF,iBAAgB,IAAIF,EAAel7E,SAC7E/V,EAAQ+V,QAAUm7E,G,6BCRlB,aACepB,MAAf,G,6BCDA,aACen2C,MAAf,G,6dCDWy3C,ECAAC,EAwCAC,E,QAQJ,SAASC,EAAiBnrF,GAC7B,OAAOA,EAAGxK,OAASy1F,EAAKhzF,QAErB,SAASmzF,EAAkBprF,GAC9B,OAAOA,EAAGxK,OAASy1F,EAAKz/E,SAErB,SAAS6/E,EAAgBrrF,GAC5B,OAAOA,EAAGxK,OAASy1F,EAAK3yF,OAErB,SAASgzF,EAActrF,GAC1B,OAAOA,EAAGxK,OAASy1F,EAAKM,KAErB,SAASC,EAAcxrF,GAC1B,OAAOA,EAAGxK,OAASy1F,EAAKQ,KAErB,SAASC,EAAgB1rF,GAC5B,OAAOA,EAAGxK,OAASy1F,EAAKU,OAErB,SAASC,EAAgB5rF,GAC5B,OAAOA,EAAGxK,OAASy1F,EAAKY,OAErB,SAASC,EAAe9rF,GAC3B,OAAOA,EAAGxK,OAASy1F,EAAKc,MAErB,SAASC,EAAahsF,GACzB,OAAOA,EAAGxK,OAASy1F,EAAK5yC,IAErB,SAAS4zC,EAAiBjsF,GAC7B,SAAUA,GAAoB,kBAAPA,GAAmBA,EAAGxK,OAAS01F,EAAc5yF,QAEjE,SAAS4zF,EAAmBlsF,GAC/B,SAAUA,GAAoB,kBAAPA,GAAmBA,EAAGxK,OAAS01F,EAAclU,WD9ExE,SAAWgU,GAEPA,EAAUA,EAAS,8BAAoC,GAAK,gCAE5DA,EAAUA,EAAS,eAAqB,GAAK,iBAE7CA,EAAUA,EAAS,mBAAyB,GAAK,qBAEjDA,EAAUA,EAAS,qBAA2B,GAAK,uBAEnDA,EAAUA,EAAS,sBAA4B,GAAK,wBAEpDA,EAAUA,EAAS,sBAA4B,GAAK,wBAEpDA,EAAUA,EAAS,wBAA8B,GAAK,0BAEtDA,EAAUA,EAAS,2BAAiC,GAAK,6BAEzDA,EAAUA,EAAS,uBAA6B,GAAK,yBAErDA,EAAUA,EAAS,0BAAgC,IAAM,4BAEzDA,EAAUA,EAAS,iCAAuC,IAAM,mCAEhEA,EAAUA,EAAS,+BAAqC,IAAM,iCAE9DA,EAAUA,EAAS,oCAA0C,IAAM,sCAEnEA,EAAUA,EAAS,qCAA2C,IAAM,uCAEpEA,EAAUA,EAAS,gCAAsC,IAAM,kCAE/DA,EAAUA,EAAS,gCAAsC,IAAM,kCAE/DA,EAAUA,EAAS,yCAA+C,IAAM,2CAKxEA,EAAUA,EAAS,yCAA+C,IAAM,2CAExEA,EAAUA,EAAS,iCAAuC,IAAM,mCAKhEA,EAAUA,EAAS,mCAAyC,IAAM,qCAIlEA,EAAUA,EAAS,mCAAyC,IAAM,qCAElEA,EAAUA,EAAS,qBAA2B,IAAM,uBAEpDA,EAAUA,EAAS,YAAkB,IAAM,cAE3CA,EAAUA,EAAS,iBAAuB,IAAM,mBAEhDA,EAAUA,EAAS,sBAA4B,IAAM,wBAErDA,EAAUA,EAAS,aAAmB,IAAM,eA5DhD,CA6DGA,IAAcA,EAAY,KC7D7B,SAAWC,GAIPA,EAAKA,EAAI,QAAc,GAAK,UAI5BA,EAAKA,EAAI,SAAe,GAAK,WAI7BA,EAAKA,EAAI,OAAa,GAAK,SAI3BA,EAAKA,EAAI,KAAW,GAAK,OAIzBA,EAAKA,EAAI,KAAW,GAAK,OAIzBA,EAAKA,EAAI,OAAa,GAAK,SAI3BA,EAAKA,EAAI,OAAa,GAAK,SAK3BA,EAAKA,EAAI,MAAY,GAAK,QAI1BA,EAAKA,EAAI,IAAU,GAAK,MArC5B,CAsCGA,IAASA,EAAO,KAEnB,SAAWC,GACPA,EAAcA,EAAa,OAAa,GAAK,SAC7CA,EAAcA,EAAa,SAAe,GAAK,WAFnD,CAGGA,IAAkBA,EAAgB,KC3C9B,IAAIiB,EAAwB,+CCI/BC,EAAkB,4KAOf,SAASC,EAAsBC,GAClC,IAAIn3F,EAAS,GA0Gb,OAzGAm3F,EAASnuF,QAAQiuF,GAAiB,SAAUn/E,GACxC,IAAIrO,EAAMqO,EAAMlU,OAChB,OAAQkU,EAAM,IAEV,IAAK,IACD9X,EAAOo3F,IAAc,IAAR3tF,EAAY,OAAiB,IAARA,EAAY,SAAW,QACzD,MAEJ,IAAK,IACDzJ,EAAOq3F,KAAe,IAAR5tF,EAAY,UAAY,UACtC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI2kB,WAAW,gEAEzB,IAAK,IACL,IAAK,IACD,MAAM,IAAIA,WAAW,8CAEzB,IAAK,IACL,IAAK,IACDpuB,EAAOs3F,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAU7tF,EAAM,GACvE,MAEJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI2kB,WAAW,2CACzB,IAAK,IACDpuB,EAAOu3F,IAAM,CAAC,UAAW,WAAW9tF,EAAM,GAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI2kB,WAAW,6DAEzB,IAAK,IACDpuB,EAAOw3F,QAAkB,IAAR/tF,EAAY,QAAkB,IAARA,EAAY,SAAW,QAC9D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAI2kB,WAAW,iDAEzBpuB,EAAOw3F,QAAU,CAAC,QAAS,OAAQ,SAAU,SAAS/tF,EAAM,GAC5D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAI2kB,WAAW,iDAEzBpuB,EAAOw3F,QAAU,CAAC,QAAS,OAAQ,SAAU,SAAS/tF,EAAM,GAC5D,MAEJ,IAAK,IACDzJ,EAAOy3F,QAAS,EAChB,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIrpE,WAAW,8DAEzB,IAAK,IACDpuB,EAAO03F,UAAY,MACnB13F,EAAO23F,KAAO,CAAC,UAAW,WAAWluF,EAAM,GAC3C,MACJ,IAAK,IACDzJ,EAAO03F,UAAY,MACnB13F,EAAO23F,KAAO,CAAC,UAAW,WAAWluF,EAAM,GAC3C,MACJ,IAAK,IACDzJ,EAAO03F,UAAY,MACnB13F,EAAO23F,KAAO,CAAC,UAAW,WAAWluF,EAAM,GAC3C,MACJ,IAAK,IACDzJ,EAAO03F,UAAY,MACnB13F,EAAO23F,KAAO,CAAC,UAAW,WAAWluF,EAAM,GAC3C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI2kB,WAAW,oEAEzB,IAAK,IACDpuB,EAAO43F,OAAS,CAAC,UAAW,WAAWnuF,EAAM,GAC7C,MAEJ,IAAK,IACDzJ,EAAO63F,OAAS,CAAC,UAAW,WAAWpuF,EAAM,GAC7C,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI2kB,WAAW,8DAEzB,IAAK,IACDpuB,EAAO83F,aAAeruF,EAAM,EAAI,QAAU,OAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAI2kB,WAAW,wEAE7B,MAAO,MAEJpuB,ECtHJ,IAAI+3F,EAAoB,wCC8B/B,IC/BIhqB,ED+BAiqB,EAA2B,mCAC3BC,EAA8B,wBAC9BC,EAAsB,0BACtBC,EAA8B,SAClC,SAASC,EAA0Bt8E,GAC/B,IAAI9b,EAAS,GA6Bb,MA5B4B,MAAxB8b,EAAIA,EAAIlY,OAAS,GACjB5D,EAAOq4F,iBAAmB,gBAEG,MAAxBv8E,EAAIA,EAAIlY,OAAS,KACtB5D,EAAOq4F,iBAAmB,iBAE9Bv8E,EAAI9S,QAAQivF,GAA6B,SAAU9kB,EAAGmlB,EAAIC,GAoBtD,MAlBkB,kBAAPA,GACPv4F,EAAOw4F,yBAA2BF,EAAG10F,OACrC5D,EAAOy4F,yBAA2BH,EAAG10F,QAGzB,MAAP20F,EACLv4F,EAAOw4F,yBAA2BF,EAAG10F,OAGtB,MAAV00F,EAAG,GACRt4F,EAAOy4F,yBAA2BH,EAAG10F,QAIrC5D,EAAOw4F,yBAA2BF,EAAG10F,OACrC5D,EAAOy4F,yBACHH,EAAG10F,QAAwB,kBAAP20F,EAAkBA,EAAG30F,OAAS,IAEnD,MAEJ5D,EAEX,SAAS04F,EAAU58E,GACf,OAAQA,GACJ,IAAK,YACD,MAAO,CACH68E,YAAa,QAErB,IAAK,kBACL,IAAK,KACD,MAAO,CACHC,aAAc,cAEtB,IAAK,cACL,IAAK,KACD,MAAO,CACHD,YAAa,UAErB,IAAK,yBACL,IAAK,MACD,MAAO,CACHA,YAAa,SACbC,aAAc,cAEtB,IAAK,mBACL,IAAK,KACD,MAAO,CACHD,YAAa,cAErB,IAAK,8BACL,IAAK,MACD,MAAO,CACHA,YAAa,aACbC,aAAc,cAEtB,IAAK,aACL,IAAK,KACD,MAAO,CACHD,YAAa,UAI7B,SAASE,EAAyCC,GAE9C,IAAI94F,EAaJ,GAZgB,MAAZ84F,EAAK,IAA0B,MAAZA,EAAK,IACxB94F,EAAS,CACL+4F,SAAU,eAEdD,EAAOA,EAAKhwF,MAAM,IAED,MAAZgwF,EAAK,KACV94F,EAAS,CACL+4F,SAAU,cAEdD,EAAOA,EAAKhwF,MAAM,IAElB9I,EAAQ,CACR,IAAI24F,EAAcG,EAAKhwF,MAAM,EAAG,GAShC,GARoB,OAAhB6vF,GACA34F,EAAO24F,YAAc,SACrBG,EAAOA,EAAKhwF,MAAM,IAEG,OAAhB6vF,IACL34F,EAAO24F,YAAc,aACrBG,EAAOA,EAAKhwF,MAAM,KAEjBqvF,EAA4B5uE,KAAKuvE,GAClC,MAAM,IAAIpxF,MAAM,6CAEpB1H,EAAOg5F,qBAAuBF,EAAKl1F,OAEvC,OAAO5D,EAEX,SAASi5F,EAAqBC,GAC1B,IACIC,EAAWT,EAAUQ,GACzB,OAAIC,GAFS,GAUV,SAASC,EAAoBC,GAEhC,IADA,IAAIr5F,EAAS,GACJ65C,EAAK,EAAGy/C,EAAWD,EAAQx/C,EAAKy/C,EAAS11F,OAAQi2C,IAAM,CAC5D,IAAI0/C,EAAQD,EAASz/C,GACrB,OAAQ0/C,EAAMT,MACV,IAAK,UACL,IAAK,IACD94F,EAAO69C,MAAQ,UACf,SACJ,IAAK,QACD79C,EAAO69C,MAAQ,UACf79C,EAAOw5F,MAAQ,IACf,SACJ,IAAK,WACDx5F,EAAO69C,MAAQ,WACf79C,EAAOy5F,SAAWF,EAAM74F,QAAQ,GAChC,SACJ,IAAK,YACL,IAAK,KACDV,EAAO05F,aAAc,EACrB,SACJ,IAAK,oBACL,IAAK,IACD15F,EAAO25F,sBAAwB,EAC/B,SACJ,IAAK,eACL,IAAK,OACD35F,EAAO69C,MAAQ,OACf79C,EAAO45F,KAAqBL,EAAM74F,QAAQ,GArJ1CsI,QAAQ,UAAW,IAsJnB,SACJ,IAAK,gBACL,IAAK,IACDhJ,EAAO+4F,SAAW,UAClB/4F,EAAO65F,eAAiB,QACxB,SACJ,IAAK,eACL,IAAK,KACD75F,EAAO+4F,SAAW,UAClB/4F,EAAO65F,eAAiB,OACxB,SACJ,IAAK,aACD75F,EAASs6C,YAASA,YAASA,YAAS,GAAIt6C,GAAS,CAAE+4F,SAAU,eAAiBQ,EAAM74F,QAAQ48C,QAAO,SAAU45B,EAAKgiB,GAAO,OAAQ5+C,YAASA,YAAS,GAAI48B,GAAM+hB,EAAqBC,MAAW,KAC7L,SACJ,IAAK,cACDl5F,EAASs6C,YAASA,YAASA,YAAS,GAAIt6C,GAAS,CAAE+4F,SAAU,gBAAkBQ,EAAM74F,QAAQ48C,QAAO,SAAU45B,EAAKgiB,GAAO,OAAQ5+C,YAASA,YAAS,GAAI48B,GAAM+hB,EAAqBC,MAAW,KAC9L,SACJ,IAAK,kBACDl5F,EAAO+4F,SAAW,WAClB,SAEJ,IAAK,oBACD/4F,EAAO85F,gBAAkB,eACzB95F,EAAO+5F,YAAc,SACrB,SACJ,IAAK,mBACD/5F,EAAO85F,gBAAkB,OACzB95F,EAAO+5F,YAAc,QACrB,SACJ,IAAK,uBACD/5F,EAAO85F,gBAAkB,OACzB95F,EAAO+5F,YAAc,OACrB,SACJ,IAAK,sBACD/5F,EAAO85F,gBAAkB,SACzB,SACJ,IAAK,QACD95F,EAAOw5F,MAAQQ,WAAWT,EAAM74F,QAAQ,IACxC,SAEJ,IAAK,gBACD,GAAI64F,EAAM74F,QAAQkD,OAAS,EACvB,MAAM,IAAIwqB,WAAW,4DAEzBmrE,EAAM74F,QAAQ,GAAGsI,QAAQkvF,GAAqB,SAAU/kB,EAAGmlB,EAAIC,EAAI0B,EAAIC,EAAIC,GACvE,GAAI7B,EACAt4F,EAAOg5F,qBAAuBT,EAAG30F,WAEhC,IAAIq2F,GAAMC,EACX,MAAM,IAAIxyF,MAAM,sDAEf,GAAIyyF,EACL,MAAM,IAAIzyF,MAAM,oDAEpB,MAAO,MAEX,SAGR,GAAIywF,EAA4B5uE,KAAKgwE,EAAMT,MACvC94F,EAAOg5F,qBAAuBO,EAAMT,KAAKl1F,YAG7C,GAAIo0F,EAAyBzuE,KAAKgwE,EAAMT,MAAxC,CAII,GAAIS,EAAM74F,QAAQkD,OAAS,EACvB,MAAM,IAAIwqB,WAAW,iEAEzBmrE,EAAMT,KAAK9vF,QAAQgvF,GAA0B,SAAU7kB,EAAGmlB,EAAIC,EAAI0B,EAAIC,EAAIC,GAkBtE,MAhBW,MAAP5B,EACAv4F,EAAOo6F,sBAAwB9B,EAAG10F,OAG7Bq2F,GAAgB,MAAVA,EAAG,GACdj6F,EAAO25F,sBAAwBM,EAAGr2F,OAG7Bs2F,GAAMC,GACXn6F,EAAOo6F,sBAAwBF,EAAGt2F,OAClC5D,EAAO25F,sBAAwBO,EAAGt2F,OAASu2F,EAAGv2F,SAG9C5D,EAAOo6F,sBAAwB9B,EAAG10F,OAClC5D,EAAO25F,sBAAwBrB,EAAG10F,QAE/B,MAEX,IAAIs1F,EAAMK,EAAM74F,QAAQ,GAEZ,MAARw4F,EACAl5F,EAASs6C,YAASA,YAAS,GAAIt6C,GAAS,CAAEq6F,oBAAqB,mBAE1DnB,IACLl5F,EAASs6C,YAASA,YAAS,GAAIt6C,GAASo4F,EAA0Bc,UAK1E,GAAIjB,EAA4B1uE,KAAKgwE,EAAMT,MACvC94F,EAASs6C,YAASA,YAAS,GAAIt6C,GAASo4F,EAA0BmB,EAAMT,WAD5E,CAIA,IAAIK,EAAWT,EAAUa,EAAMT,MAC3BK,IACAn5F,EAASs6C,YAASA,YAAS,GAAIt6C,GAASm5F,IAE5C,IAAImB,EAAsCzB,EAAyCU,EAAMT,MACrFwB,IACAt6F,EAASs6C,YAASA,YAAS,GAAIt6C,GAASs6F,KAGhD,OAAOt6F,EC/RX,IAAIu6F,EAA8B,IAAIzmC,OAAO,IAAInoD,OAAOqrF,EAAsBvwF,OAAQ,MAClF+zF,EAA4B,IAAI1mC,OAAO,GAAGnoD,OAAOqrF,EAAsBvwF,OAAQ,OACnF,SAASg0F,EAAelxF,EAAOC,GAC3B,MAAO,CAAED,MAAOA,EAAOC,IAAKA,GAIhC,IAAIkxF,IAAwBlmF,OAAO5P,UAAUs4E,WACzCyd,IAA2BnmF,OAAOomF,cAClCC,IAAyB17F,OAAO27F,YAChCC,IAAyBvmF,OAAO5P,UAAUo2F,YAC1CC,IAAiBzmF,OAAO5P,UAAUs2F,UAClCC,IAAe3mF,OAAO5P,UAAUw2F,QAEhCC,IAD2B/9D,OAAO+9D,cAEhC/9D,OAAO+9D,cACP,SAAUtrE,GACR,MAAqB,kBAANA,GACX8lB,SAAS9lB,IACTlsB,KAAKu0C,MAAMroB,KAAOA,GAClBlsB,KAAKg8C,IAAI9vB,IAAM,kBAGvBurE,GAAyB,EAC7B,IAQIA,EAA8F,OAA5C,QAAvBvtB,EAPlBwtB,EAAG,4CAA6C,MAOtBle,KAAK,YAAyB,IAAPtP,OAAgB,EAASA,EAAG,IAE1F,MAAOoF,IACHmoB,GAAyB,EAE7B,IAyFIE,EAzFAte,EAAawd,EAET,SAAoBx5F,EAAGqhD,EAAQ6jC,GAC3B,OAAOllF,EAAEg8E,WAAW36B,EAAQ6jC,IAGhC,SAAoBllF,EAAGqhD,EAAQ6jC,GAC3B,OAAOllF,EAAE4H,MAAMs9E,EAAUA,EAAW7jC,EAAO3+C,UAAY2+C,GAE/Dq4C,EAAgBD,EACdnmF,OAAOomF,cAEL,WAEI,IADA,IAAIzmD,EAAa,GACR0F,EAAK,EAAGA,EAAK1zC,UAAUvC,OAAQi2C,IACpC1F,EAAW0F,GAAM1zC,UAAU0zC,GAM/B,IAJA,IAGIpkC,EAHAgmF,EAAW,GACX73F,EAASuwC,EAAWvwC,OACpBlB,EAAI,EAEDkB,EAASlB,GAAG,CAEf,IADA+S,EAAO0+B,EAAWzxC,MACP,QACP,MAAM0rB,WAAW3Y,EAAO,8BAC5BgmF,GACIhmF,EAAO,MACDjB,OAAOC,aAAagB,GACpBjB,OAAOC,aAAyC,QAA1BgB,GAAQ,QAAY,IAAeA,EAAO,KAAS,OAEvF,OAAOgmF,GAEfX,EAEJD,EACM17F,OAAO27F,YAEL,SAAqBt5F,GAEjB,IADA,IAAI4nB,EAAM,GACDywB,EAAK,EAAG6hD,EAAYl6F,EAASq4C,EAAK6hD,EAAU93F,OAAQi2C,IAAM,CAC/D,IAAIk0B,EAAK2tB,EAAU7hD,GAAK14C,EAAI4sE,EAAG,GAAI9sE,EAAI8sE,EAAG,GAC1C3kD,EAAIjoB,GAAKF,EAEb,OAAOmoB,GAEf4xE,EAAcD,EAEV,SAAqB75F,EAAG0b,GACpB,OAAO1b,EAAE85F,YAAYp+E,IAGzB,SAAqB1b,EAAG0b,GACpB,IAAIZ,EAAO9a,EAAE0C,OACb,KAAIgZ,EAAQ,GAAKA,GAASZ,GAA1B,CAGA,IACI67E,EADA8D,EAAQz6F,EAAEoH,WAAWsU,GAEzB,OAAO++E,EAAQ,OACXA,EAAQ,OACR/+E,EAAQ,IAAMZ,IACb67E,EAAS32F,EAAEoH,WAAWsU,EAAQ,IAAM,OACrCi7E,EAAS,MACP8D,EAC4B9D,EAAS,OAAnC8D,EAAQ,OAAW,IAA0B,QAE7DT,EAAYD,EAER,SAAmB/5F,GACf,OAAOA,EAAEg6F,aAGb,SAAmBh6F,GACf,OAAOA,EAAE8H,QAAQuxF,EAA6B,KAEtDa,EAAUD,EAEN,SAAiBj6F,GACb,OAAOA,EAAEk6F,WAGb,SAAiBl6F,GACb,OAAOA,EAAE8H,QAAQwxF,EAA2B,KAGxD,SAASe,EAAGr6F,EAAG06F,GACX,OAAO,IAAI9nC,OAAO5yD,EAAG06F,GAIzB,GAAIN,EAAwB,CAExB,IAAIO,EAAyBN,EAAG,4CAA6C,MAC7EC,EAAyB,SAAgCt6F,EAAG0b,GACxD,IAAImxD,EAGJ,OAFA8tB,EAAuBC,UAAYl/E,EAER,QAAnBmxD,EADI8tB,EAAuBxe,KAAKn8E,GACrB,UAAuB,IAAP6sE,EAAgBA,EAAK,SAK5DytB,EAAyB,SAAgCt6F,EAAG0b,GAExD,IADA,IAAI9E,EAAQ,KACC,CACT,IAAI1O,EAAI4xF,EAAY95F,EAAG0b,GACvB,QAAU9c,IAANsJ,GAAmB2yF,GAAc3yF,IAAM4yF,GAAiB5yF,GACxD,MAEJ0O,EAAM7O,KAAKG,GACXwT,GAASxT,GAAK,MAAU,EAAI,EAEhC,OAAOwxF,EAAcx0F,WAAM,EAAQ0R,IAG3C,IAAImkF,EAAwB,WACxB,SAASA,EAAO97F,EAASO,QACL,IAAZA,IAAsBA,EAAU,IACpCe,KAAKtB,QAAUA,EACfsB,KAAK2kF,SAAW,CAAElhF,OAAQ,EAAGwoB,KAAM,EAAGwuE,OAAQ,GAC9Cz6F,KAAK06F,YAAcz7F,EAAQy7F,UAC3B16F,KAAK26F,sBAAwB17F,EAAQ07F,oBACrC36F,KAAK46F,uBAAyB37F,EAAQ27F,qBA+xB1C,OA7xBAJ,EAAOr3F,UAAUynB,MAAQ,WACrB,GAAsB,IAAlB5qB,KAAKyD,SACL,MAAMwC,MAAM,gCAEhB,OAAOjG,KAAK66F,aAAa,EAAG,IAAI,IAEpCL,EAAOr3F,UAAU03F,aAAe,SAAUC,EAAcC,EAAeC,GAEnE,IADA,IAAIhB,EAAW,IACPh6F,KAAKi7F,SAAS,CAClB,IAAIC,EAAOl7F,KAAKk7F,OAChB,GAAa,MAATA,EAAwB,CAExB,IADI38F,EAASyB,KAAKm7F,cAAcL,EAAcE,IACnCp2F,IACP,OAAOrG,EAEXy7F,EAASxyF,KAAKjJ,EAAOyH,SAEpB,IAAa,MAATk1F,GAA0BJ,EAAe,EAC9C,MAEC,GAAa,KAATI,GACc,WAAlBH,GAAgD,kBAAlBA,EAQ9B,IAAa,KAATG,IACJl7F,KAAK06F,WACU,KAAhB16F,KAAKo7F,OACP,CACE,GAAIJ,EACA,MAGA,OAAOh7F,KAAKS,MAAM2zF,EAAUiH,sBAAuBrC,EAAeh5F,KAAKs7F,gBAAiBt7F,KAAKs7F,kBAGhG,GAAa,KAATJ,IACJl7F,KAAK06F,WACNa,EAASv7F,KAAKo7F,QAAU,GAAI,CAE5B,IADI78F,EAASyB,KAAKw7F,SAASV,EAAcC,IAC9Bn2F,IACP,OAAOrG,EAEXy7F,EAASxyF,KAAKjJ,EAAOyH,SAEpB,CACD,IAAIzH,EACJ,IADIA,EAASyB,KAAKy7F,aAAaX,EAAcC,IAClCn2F,IACP,OAAOrG,EAEXy7F,EAASxyF,KAAKjJ,EAAOyH,UAjC8C,CACnE,IAAI2+E,EAAW3kF,KAAKs7F,gBACpBt7F,KAAK07F,OACL1B,EAASxyF,KAAK,CACV5I,KAAMy1F,EAAKc,MACXvoE,SAAUosE,EAAerU,EAAU3kF,KAAKs7F,qBA+BpD,MAAO,CAAEt1F,IAAKg0F,EAAUp1F,IAAK,OAoBjC41F,EAAOr3F,UAAUq4F,SAAW,SAAUV,EAAcC,GAChD,IAAIY,EAAgB37F,KAAKs7F,gBACzBt7F,KAAK07F,OACL,IAAI92C,EAAU5kD,KAAK47F,eAEnB,GADA57F,KAAK67F,YACD77F,KAAK87F,OAAO,MAEZ,MAAO,CACH91F,IAAK,CACDpH,KAAMy1F,EAAKhzF,QACXrD,MAAO,IAAIkM,OAAO06C,EAAS,MAC3Bh4B,SAAUosE,EAAe2C,EAAe37F,KAAKs7F,kBAEjD12F,IAAK,MAGR,GAAI5E,KAAK87F,OAAO,KAAM,CACvB,IAAIC,EAAiB/7F,KAAK66F,aAAaC,EAAe,EAAGC,GAAe,GACxE,GAAIgB,EAAen3F,IACf,OAAOm3F,EAEX,IAAI/tC,EAAW+tC,EAAe/1F,IAE1Bg2F,EAAsBh8F,KAAKs7F,gBAC/B,GAAIt7F,KAAK87F,OAAO,MAAO,CACnB,GAAI97F,KAAKi7F,UAAYM,EAASv7F,KAAKk7F,QAC/B,OAAOl7F,KAAKS,MAAM2zF,EAAU6H,YAAajD,EAAegD,EAAqBh8F,KAAKs7F,kBAEtF,IAAIY,EAA8Bl8F,KAAKs7F,gBAEvC,OAAI12C,IADiB5kD,KAAK47F,eAEf57F,KAAKS,MAAM2zF,EAAUiH,sBAAuBrC,EAAekD,EAA6Bl8F,KAAKs7F,mBAExGt7F,KAAK67F,YACA77F,KAAK87F,OAAO,KAGV,CACH91F,IAAK,CACDpH,KAAMy1F,EAAK5yC,IACXzjD,MAAO4mD,EACPoJ,SAAUA,EACVphC,SAAUosE,EAAe2C,EAAe37F,KAAKs7F,kBAEjD12F,IAAK,MATE5E,KAAKS,MAAM2zF,EAAU6H,YAAajD,EAAegD,EAAqBh8F,KAAKs7F,mBAatF,OAAOt7F,KAAKS,MAAM2zF,EAAU+H,aAAcnD,EAAe2C,EAAe37F,KAAKs7F,kBAIjF,OAAOt7F,KAAKS,MAAM2zF,EAAU6H,YAAajD,EAAe2C,EAAe37F,KAAKs7F,mBAMpFd,EAAOr3F,UAAUy4F,aAAe,WAC5B,IAqqB6Bj0F,EArqBzBy0F,EAAcp8F,KAAKyD,SAEvB,IADAzD,KAAK07F,QACG17F,KAAKi7F,UAoqBH,MADmBtzF,EAnqBuB3H,KAAKk7F,SAqqBnD,KAANvzF,GACCA,GAAK,IAAMA,GAAK,IACX,KAANA,GACCA,GAAK,IAAMA,GAAK,KAChBA,GAAK,IAAMA,GAAK,IACZ,KAALA,GACCA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAAQA,GAAK,KAClBA,GAAK,KAASA,GAAK,MACnBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAWA,GAAK,SArrBlB3H,KAAK07F,OAET,OAAO17F,KAAKtB,QAAQ2I,MAAM+0F,EAAap8F,KAAKyD,WAEhD+2F,EAAOr3F,UAAUs4F,aAAe,SAAUX,EAAcC,GAGpD,IAFA,IAAIjzF,EAAQ9H,KAAKs7F,gBACbt9F,EAAQ,KACC,CACT,IAAIq+F,EAAmBr8F,KAAKs8F,cAAcvB,GAC1C,GAAIsB,EACAr+F,GAASq+F,MADb,CAIA,IAAIE,EAAsBv8F,KAAKw8F,iBAAiB1B,EAAcC,GAC9D,GAAIwB,EACAv+F,GAASu+F,MADb,CAIA,IAAIE,EAAuBz8F,KAAK08F,2BAChC,IAAID,EAIJ,MAHIz+F,GAASy+F,IAKjB,IAAI7vE,EAAWosE,EAAelxF,EAAO9H,KAAKs7F,iBAC1C,MAAO,CACHt1F,IAAK,CAAEpH,KAAMy1F,EAAKhzF,QAASrD,MAAOA,EAAO4uB,SAAUA,GACnDhoB,IAAK,OAGb41F,EAAOr3F,UAAUu5F,yBAA2B,WACxC,OAAK18F,KAAKi7F,SACU,KAAhBj7F,KAAKk7F,SACJl7F,KAAK06F,YA6nBPa,EADcoB,EA1nBQ38F,KAAKo7F,QAAU,IA2nBA,KAAduB,GAvnBnB,MAHH38F,KAAK07F,OACE,KAwnBnB,IAAyBiB,GA/mBrBnC,EAAOr3F,UAAUm5F,cAAgB,SAAUvB,GACvC,GAAI/6F,KAAKi7F,SAA2B,KAAhBj7F,KAAKk7F,OACrB,OAAO,KAIX,OAAQl7F,KAAKo7F,QACT,KAAK,GAID,OAFAp7F,KAAK07F,OACL17F,KAAK07F,OACE,IAEX,KAAK,IACL,KAAK,GACL,KAAK,GACL,KAAK,IACD,MACJ,KAAK,GACD,GAAsB,WAAlBX,GAAgD,kBAAlBA,EAC9B,MAEJ,OAAO,KACX,QACI,OAAO,KAEf/6F,KAAK07F,OACL,IAAIhpD,EAAa,CAAC1yC,KAAKk7F,QAGvB,IAFAl7F,KAAK07F,QAEG17F,KAAKi7F,SAAS,CAClB,IAAInyF,EAAK9I,KAAKk7F,OACd,GAAW,KAAPpyF,EAAqB,CACrB,GAAoB,KAAhB9I,KAAKo7F,OAKJ,CAEDp7F,KAAK07F,OACL,MAPAhpD,EAAWlrC,KAAK,IAEhBxH,KAAK07F,YASThpD,EAAWlrC,KAAKsB,GAEpB9I,KAAK07F,OAET,OAAOvC,EAAcx0F,WAAM,EAAQ+tC,IAEvC8nD,EAAOr3F,UAAUq5F,iBAAmB,SAAU1B,EAAcC,GACxD,GAAI/6F,KAAKi7F,QACL,OAAO,KAEX,IAAInyF,EAAK9I,KAAKk7F,OACd,OAAW,KAAPpyF,GACO,MAAPA,GACQ,KAAPA,IACsB,WAAlBiyF,GAAgD,kBAAlBA,IAC3B,MAAPjyF,GAAwBgyF,EAAe,EACjC,MAGP96F,KAAK07F,OACEvC,EAAcrwF,KAG7B0xF,EAAOr3F,UAAUg4F,cAAgB,SAAUL,EAAcE,GACrD,IAAI4B,EAAuB58F,KAAKs7F,gBAGhC,GAFAt7F,KAAK07F,OACL17F,KAAK67F,YACD77F,KAAKi7F,QACL,OAAOj7F,KAAKS,MAAM2zF,EAAUyI,8BAA+B7D,EAAe4D,EAAsB58F,KAAKs7F,kBAEzG,GAAoB,MAAhBt7F,KAAKk7F,OAEL,OADAl7F,KAAK07F,OACE17F,KAAKS,MAAM2zF,EAAU0I,eAAgB9D,EAAe4D,EAAsB58F,KAAKs7F,kBAG1F,IAAIt9F,EAAQgC,KAAK+8F,4BAA4B/+F,MAC7C,IAAKA,EACD,OAAOgC,KAAKS,MAAM2zF,EAAU4I,mBAAoBhE,EAAe4D,EAAsB58F,KAAKs7F,kBAG9F,GADAt7F,KAAK67F,YACD77F,KAAKi7F,QACL,OAAOj7F,KAAKS,MAAM2zF,EAAUyI,8BAA+B7D,EAAe4D,EAAsB58F,KAAKs7F,kBAEzG,OAAQt7F,KAAKk7F,QAET,KAAK,IAED,OADAl7F,KAAK07F,OACE,CACH11F,IAAK,CACDpH,KAAMy1F,EAAKz/E,SAEX5W,MAAOA,EACP4uB,SAAUosE,EAAe4D,EAAsB58F,KAAKs7F,kBAExD12F,IAAK,MAIb,KAAK,GAGD,OAFA5E,KAAK07F,OACL17F,KAAK67F,YACD77F,KAAKi7F,QACEj7F,KAAKS,MAAM2zF,EAAUyI,8BAA+B7D,EAAe4D,EAAsB58F,KAAKs7F,kBAElGt7F,KAAKi9F,qBAAqBnC,EAAcE,EAAmBh9F,EAAO4+F,GAE7E,QACI,OAAO58F,KAAKS,MAAM2zF,EAAU4I,mBAAoBhE,EAAe4D,EAAsB58F,KAAKs7F,oBAOtGd,EAAOr3F,UAAU45F,0BAA4B,WACzC,IAAIG,EAAmBl9F,KAAKs7F,gBACxBc,EAAcp8F,KAAKyD,SACnBzF,EAAQ+7F,EAAuB/5F,KAAKtB,QAAS09F,GAC7Ce,EAAYf,EAAcp+F,EAAMmE,OAIpC,OAHAnC,KAAKo9F,OAAOD,GAGL,CAAEn/F,MAAOA,EAAO4uB,SADRosE,EAAekE,EADZl9F,KAAKs7F,mBAI3Bd,EAAOr3F,UAAU85F,qBAAuB,SAAUnC,EAAcE,EAAmBh9F,EAAO4+F,GACtF,IAAItwB,EAIA+wB,EAAoBr9F,KAAKs7F,gBACzBgC,EAAUt9F,KAAK+8F,4BAA4B/+F,MAC3Cu/F,EAAkBv9F,KAAKs7F,gBAC3B,OAAQgC,GACJ,IAAK,GAED,OAAOt9F,KAAKS,MAAM2zF,EAAUoJ,qBAAsBxE,EAAeqE,EAAmBE,IACxF,IAAK,SACL,IAAK,OACL,IAAK,OAIDv9F,KAAK67F,YACL,IAAI4B,EAAmB,KACvB,GAAIz9F,KAAK87F,OAAO,KAAM,CAClB97F,KAAK67F,YACL,IAAI6B,EAAqB19F,KAAKs7F,gBAE9B,IADI/8F,EAASyB,KAAK29F,iCACP/4F,IACP,OAAOrG,EAGX,GAAqB,KADjB69C,EAAQu9C,EAAQp7F,EAAOyH,MACjB7D,OACN,OAAOnC,KAAKS,MAAM2zF,EAAUwJ,sBAAuB5E,EAAeh5F,KAAKs7F,gBAAiBt7F,KAAKs7F,kBAGjGmC,EAAmB,CAAErhD,MAAOA,EAAOyhD,cADf7E,EAAe0E,EAAoB19F,KAAKs7F,kBAIhE,IADIwC,EAAiB99F,KAAK+9F,sBAAsBnB,IAC7Bh4F,IACf,OAAOk5F,EAEX,IAAIE,EAAahF,EAAe4D,EAAsB58F,KAAKs7F,iBAE3D,GAAImC,GAAoBhiB,EAAgC,OAArBgiB,QAAkD,IAArBA,OAA8B,EAASA,EAAiBrhD,MAAO,KAAM,GAAI,CAErI,IAAIs5C,EAAW+D,EAAUgE,EAAiBrhD,MAAM/0C,MAAM,IACtD,GAAgB,WAAZi2F,EAEA,OADI/+F,EAASyB,KAAKi+F,8BAA8BvI,EAAU+H,EAAiBI,gBAChEj5F,IACArG,EAEJ,CACHyH,IAAK,CAAEpH,KAAMy1F,EAAK3yF,OAAQ1D,MAAOA,EAAO4uB,SAAUoxE,EAAY5hD,MAAO79C,EAAOyH,KAC5EpB,IAAK,MAIT,GAAwB,IAApB8wF,EAASvzF,OACT,OAAOnC,KAAKS,MAAM2zF,EAAU8J,0BAA2BF,GAE3D,IAAI5hD,EAAQ,CACRx9C,KAAM01F,EAAclU,SACpBluB,QAASwjC,EACT9oE,SAAU6wE,EAAiBI,cAC3BM,cAAen+F,KAAK46F,qBACdnF,EAAsBC,GACtB,IAGV,MAAO,CACH1vF,IAAK,CAAEpH,KAFY,SAAZ0+F,EAAqBjJ,EAAKM,KAAON,EAAKQ,KAE1B72F,MAAOA,EAAO4uB,SAAUoxE,EAAY5hD,MAAOA,GAC9Dx3C,IAAK,MAKjB,MAAO,CACHoB,IAAK,CACDpH,KAAkB,WAAZ0+F,EACAjJ,EAAK3yF,OACO,SAAZ47F,EACIjJ,EAAKM,KACLN,EAAKQ,KACf72F,MAAOA,EACP4uB,SAAUoxE,EACV5hD,MAA6G,QAArGkwB,EAA0B,OAArBmxB,QAAkD,IAArBA,OAA8B,EAASA,EAAiBrhD,aAA0B,IAAPkwB,EAAgBA,EAAK,MAE9I1nE,IAAK,MAGb,IAAK,SACL,IAAK,gBACL,IAAK,SAID,IAAIw5F,EAAoBp+F,KAAKs7F,gBAE7B,GADAt7F,KAAK67F,aACA77F,KAAK87F,OAAO,KACb,OAAO97F,KAAKS,MAAM2zF,EAAUiK,+BAAgCrF,EAAeoF,EAAmBvlD,YAAS,GAAIulD,KAE/Gp+F,KAAK67F,YASL,IAAIyC,EAAwBt+F,KAAK+8F,4BAC7BwB,EAAe,EACnB,GAAgB,WAAZjB,GAAwD,WAAhCgB,EAAsBtgG,MAAoB,CAClE,IAAKgC,KAAK87F,OAAO,KACb,OAAO97F,KAAKS,MAAM2zF,EAAUoK,oCAAqCxF,EAAeh5F,KAAKs7F,gBAAiBt7F,KAAKs7F,kBAG/G,IAAI/8F,EACJ,GAFAyB,KAAK67F,aACDt9F,EAASyB,KAAKy+F,uBAAuBrK,EAAUoK,oCAAqCpK,EAAUsK,uCACvF95F,IACP,OAAOrG,EAGXyB,KAAK67F,YACLyC,EAAwBt+F,KAAK+8F,4BAC7BwB,EAAehgG,EAAOyH,IAE1B,IAII83F,EAJAa,EAAgB3+F,KAAK4+F,8BAA8B9D,EAAcwC,EAAStC,EAAmBsD,GACjG,GAAIK,EAAc/5F,IACd,OAAO+5F,EAGX,IADIb,EAAiB99F,KAAK+9F,sBAAsBnB,IAC7Bh4F,IACf,OAAOk5F,EAEX,IAAIe,EAAa7F,EAAe4D,EAAsB58F,KAAKs7F,iBAC3D,MAAgB,WAAZgC,EACO,CACHt3F,IAAK,CACDpH,KAAMy1F,EAAKU,OACX/2F,MAAOA,EACPiB,QAASo6F,EAAYsF,EAAc34F,KACnC4mB,SAAUiyE,GAEdj6F,IAAK,MAIF,CACHoB,IAAK,CACDpH,KAAMy1F,EAAKY,OACXj3F,MAAOA,EACPiB,QAASo6F,EAAYsF,EAAc34F,KACnCvC,OAAQ86F,EACRO,WAAwB,WAAZxB,EAAuB,WAAa,UAChD1wE,SAAUiyE,GAEdj6F,IAAK,MAIjB,QACI,OAAO5E,KAAKS,MAAM2zF,EAAU2K,sBAAuB/F,EAAeqE,EAAmBE,MAGjG/C,EAAOr3F,UAAU46F,sBAAwB,SAAUnB,GAG/C,OAAI58F,KAAKi7F,SAA2B,MAAhBj7F,KAAKk7F,OACdl7F,KAAKS,MAAM2zF,EAAUyI,8BAA+B7D,EAAe4D,EAAsB58F,KAAKs7F,mBAEzGt7F,KAAK07F,OACE,CAAE11F,KAAK,EAAMpB,IAAK,QAK7B41F,EAAOr3F,UAAUw6F,8BAAgC,WAG7C,IAFA,IAAIqB,EAAe,EACfrD,EAAgB37F,KAAKs7F,iBACjBt7F,KAAKi7F,SAAS,CAElB,OADSj7F,KAAKk7F,QAEV,KAAK,GAGDl7F,KAAK07F,OACL,IAAIuD,EAAqBj/F,KAAKs7F,gBAC9B,IAAKt7F,KAAKk/F,UAAU,KAChB,OAAOl/F,KAAKS,MAAM2zF,EAAU+K,iCAAkCnG,EAAeiG,EAAoBj/F,KAAKs7F,kBAE1Gt7F,KAAK07F,OACL,MAEJ,KAAK,IACDsD,GAAgB,EAChBh/F,KAAK07F,OACL,MAEJ,KAAK,IACD,KAAIsD,EAAe,GAIf,MAAO,CACHh5F,IAAKhG,KAAKtB,QAAQ2I,MAAMs0F,EAAcl4F,OAAQzD,KAAKyD,UACnDmB,IAAK,MALTo6F,GAAgB,EAQpB,MAEJ,QACIh/F,KAAK07F,QAIjB,MAAO,CACH11F,IAAKhG,KAAKtB,QAAQ2I,MAAMs0F,EAAcl4F,OAAQzD,KAAKyD,UACnDmB,IAAK,OAGb41F,EAAOr3F,UAAU86F,8BAAgC,SAAUvI,EAAU9oE,GACjE,IAAIgrE,EAAS,GACb,IACIA,ED5rBL,SAAuClC,GAC1C,GAAwB,IAApBA,EAASvzF,OACT,MAAM,IAAI8D,MAAM,mCAOpB,IAJA,IAGI2xF,EAAS,GACJx/C,EAAK,EAAGgnD,EAJE1J,EACd7pE,MAAMyqE,GACN56E,QAAO,SAAU5d,GAAK,OAAOA,EAAEqE,OAAS,KAEGi2C,EAAKgnD,EAAej9F,OAAQi2C,IAAM,CAC9E,IACIinD,EADcD,EAAehnD,GACAvsB,MAAM,KACvC,GAA8B,IAA1BwzE,EAAel9F,OACf,MAAM,IAAI8D,MAAM,2BAGpB,IADA,IAAIoxF,EAAOgI,EAAe,GAAIpgG,EAAUogG,EAAeh4F,MAAM,GACpDilE,EAAK,EAAGgzB,EAAYrgG,EAASqtE,EAAKgzB,EAAUn9F,OAAQmqE,IAEzD,GAAsB,IADTgzB,EAAUhzB,GACZnqE,OACP,MAAM,IAAI8D,MAAM,2BAGxB2xF,EAAOpwF,KAAK,CAAE6vF,KAAMA,EAAMp4F,QAASA,IAEvC,OAAO24F,ECoqBUqG,CAA8BvI,GAE3C,MAAOrtF,GACH,OAAOrI,KAAKS,MAAM2zF,EAAUmL,wBAAyB3yE,GAEzD,MAAO,CACH5mB,IAAK,CACDpH,KAAM01F,EAAc5yF,OACpBk2F,OAAQA,EACRhrE,SAAUA,EACVuxE,cAAen+F,KAAK46F,qBACdjD,EAAoBC,GACpB,IAEVhzF,IAAK,OAab41F,EAAOr3F,UAAUy7F,8BAAgC,SAAU9D,EAAcC,EAAeyE,EAAgBC,GASpG,IARA,IAAInzB,EACAozB,GAAiB,EACjBzgG,EAAU,GACV0gG,EAAkB,IAAIv2C,IACtBw2C,EAAWH,EAAsBzhG,MAAO6hG,EAAmBJ,EAAsB7yE,WAIxE,CACT,GAAwB,IAApBgzE,EAASz9F,OAAc,CACvB,IAAIw5F,EAAgB37F,KAAKs7F,gBACzB,GAAsB,WAAlBP,IAA8B/6F,KAAK87F,OAAO,KAU1C,MARA,IAAIv9F,EAASyB,KAAKy+F,uBAAuBrK,EAAU0L,gCAAiC1L,EAAU2L,kCAC9F,GAAIxhG,EAAOqG,IACP,OAAOrG,EAEXshG,EAAmB7G,EAAe2C,EAAe37F,KAAKs7F,iBACtDsE,EAAW5/F,KAAKtB,QAAQ2I,MAAMs0F,EAAcl4F,OAAQzD,KAAKyD,UAOjE,GAAIk8F,EAAgBpkF,IAAIqkF,GACpB,OAAO5/F,KAAKS,MAAwB,WAAlBs6F,EACZ3G,EAAU4L,mCACV5L,EAAU6L,mCAAoCJ,GAEvC,UAAbD,IACAF,GAAiB,GAKrB1/F,KAAK67F,YACL,IAAIe,EAAuB58F,KAAKs7F,gBAChC,IAAKt7F,KAAK87F,OAAO,KACb,OAAO97F,KAAKS,MAAwB,WAAlBs6F,EACZ3G,EAAU8L,yCACV9L,EAAU+L,yCAA0CnH,EAAeh5F,KAAKs7F,gBAAiBt7F,KAAKs7F,kBAExG,IAAI8E,EAAiBpgG,KAAK66F,aAAaC,EAAe,EAAGC,EAAeyE,GACxE,GAAIY,EAAex7F,IACf,OAAOw7F,EAEX,IAAItC,EAAiB99F,KAAK+9F,sBAAsBnB,GAChD,GAAIkB,EAAel5F,IACf,OAAOk5F,EAEX7+F,EAAQuI,KAAK,CACTo4F,EACA,CACI5hG,MAAOoiG,EAAep6F,IACtB4mB,SAAUosE,EAAe4D,EAAsB58F,KAAKs7F,oBAI5DqE,EAAgBhiF,IAAIiiF,GAEpB5/F,KAAK67F,YACmC+D,GAAvCtzB,EAAKtsE,KAAK+8F,6BAA2C/+F,MAAO6hG,EAAmBvzB,EAAG1/C,SAEvF,OAAuB,IAAnB3tB,EAAQkD,OACDnC,KAAKS,MAAwB,WAAlBs6F,EACZ3G,EAAUiM,gCACVjM,EAAU0L,gCAAiC9G,EAAeh5F,KAAKs7F,gBAAiBt7F,KAAKs7F,kBAE3Ft7F,KAAK26F,sBAAwB+E,EACtB1/F,KAAKS,MAAM2zF,EAAUkM,qBAAsBtH,EAAeh5F,KAAKs7F,gBAAiBt7F,KAAKs7F,kBAEzF,CAAEt1F,IAAK/G,EAAS2F,IAAK,OAEhC41F,EAAOr3F,UAAUs7F,uBAAyB,SAAU8B,EAAmBC,GACnE,IAAI/gF,EAAO,EACPy9E,EAAmBl9F,KAAKs7F,gBACxBt7F,KAAK87F,OAAO,MAEP97F,KAAK87F,OAAO,OACjBr8E,GAAQ,GAIZ,IAFA,IAAIghF,GAAY,EACZC,EAAU,GACN1gG,KAAKi7F,SAAS,CAClB,IAAInyF,EAAK9I,KAAKk7F,OACd,KAAIpyF,GAAM,IAAgBA,GAAM,IAM5B,MALA23F,GAAY,EACZC,EAAoB,GAAVA,GAAgB53F,EAAK,IAC/B9I,KAAK07F,OAMb,IAAI9uE,EAAWosE,EAAekE,EAAkBl9F,KAAKs7F,iBACrD,OAAKmF,EAIA7G,EADL8G,GAAWjhF,GAIJ,CAAEzZ,IAAK06F,EAAS97F,IAAK,MAFjB5E,KAAKS,MAAM+/F,EAAoB5zE,GAJ/B5sB,KAAKS,MAAM8/F,EAAmB3zE,IAQ7C4tE,EAAOr3F,UAAUM,OAAS,WACtB,OAAOzD,KAAK2kF,SAASlhF,QAEzB+2F,EAAOr3F,UAAU83F,MAAQ,WACrB,OAAOj7F,KAAKyD,WAAazD,KAAKtB,QAAQyD,QAE1Cq4F,EAAOr3F,UAAUm4F,cAAgB,WAE7B,MAAO,CACH73F,OAAQzD,KAAK2kF,SAASlhF,OACtBwoB,KAAMjsB,KAAK2kF,SAAS14D,KACpBwuE,OAAQz6F,KAAK2kF,SAAS8V,SAO9BD,EAAOr3F,UAAU+3F,KAAO,WACpB,IAAIz3F,EAASzD,KAAK2kF,SAASlhF,OAC3B,GAAIA,GAAUzD,KAAKtB,QAAQyD,OACvB,MAAM8D,MAAM,gBAEhB,IAAI+N,EAAOulF,EAAYv5F,KAAKtB,QAAS+E,GACrC,QAAapF,IAAT2V,EACA,MAAM/N,MAAM,UAAUiE,OAAOzG,EAAQ,6CAEzC,OAAOuQ,GAEXwmF,EAAOr3F,UAAU1C,MAAQ,SAAU4U,EAAMuX,GACrC,MAAO,CACH5mB,IAAK,KACLpB,IAAK,CACDyQ,KAAMA,EACN3W,QAASsB,KAAKtB,QACdkuB,SAAUA,KAKtB4tE,EAAOr3F,UAAUu4F,KAAO,WACpB,IAAI17F,KAAKi7F,QAAT,CAGA,IAAIjnF,EAAOhU,KAAKk7F,OACH,KAATlnF,GACAhU,KAAK2kF,SAAS14D,MAAQ,EACtBjsB,KAAK2kF,SAAS8V,OAAS,EACvBz6F,KAAK2kF,SAASlhF,QAAU,IAGxBzD,KAAK2kF,SAAS8V,QAAU,EAExBz6F,KAAK2kF,SAASlhF,QAAUuQ,EAAO,MAAU,EAAI,KASrDwmF,EAAOr3F,UAAU24F,OAAS,SAAU7vB,GAChC,GAAIwP,EAAWz7E,KAAKtB,QAASutE,EAAQjsE,KAAKyD,UAAW,CACjD,IAAK,IAAIxC,EAAI,EAAGA,EAAIgrE,EAAO9pE,OAAQlB,IAC/BjB,KAAK07F,OAET,OAAO,EAEX,OAAO,GAMXlB,EAAOr3F,UAAU+7F,UAAY,SAAUhtC,GACnC,IAAIyuC,EAAgB3gG,KAAKyD,SACrB0X,EAAQnb,KAAKtB,QAAQkpB,QAAQsqC,EAASyuC,GAC1C,OAAIxlF,GAAS,GACTnb,KAAKo9F,OAAOjiF,IACL,IAGPnb,KAAKo9F,OAAOp9F,KAAKtB,QAAQyD,SAClB,IAOfq4F,EAAOr3F,UAAUi6F,OAAS,SAAUwD,GAChC,GAAI5gG,KAAKyD,SAAWm9F,EAChB,MAAM36F,MAAM,gBAAgBiE,OAAO02F,EAAc,yDAAyD12F,OAAOlK,KAAKyD,WAG1H,IADAm9F,EAAex+F,KAAK8vC,IAAI0uD,EAAc5gG,KAAKtB,QAAQyD,UACtC,CACT,IAAIsB,EAASzD,KAAKyD,SAClB,GAAIA,IAAWm9F,EACX,MAEJ,GAAIn9F,EAASm9F,EACT,MAAM36F,MAAM,gBAAgBiE,OAAO02F,EAAc,6CAGrD,GADA5gG,KAAK07F,OACD17F,KAAKi7F,QACL,QAKZT,EAAOr3F,UAAU04F,UAAY,WACzB,MAAQ77F,KAAKi7F,SAAWX,GAAct6F,KAAKk7F,SACvCl7F,KAAK07F,QAOblB,EAAOr3F,UAAUi4F,KAAO,WACpB,GAAIp7F,KAAKi7F,QACL,OAAO,KAEX,IAAIjnF,EAAOhU,KAAKk7F,OACZz3F,EAASzD,KAAKyD,SACdo9F,EAAW7gG,KAAKtB,QAAQmI,WAAWpD,GAAUuQ,GAAQ,MAAU,EAAI,IACvE,OAAoB,OAAb6sF,QAAkC,IAAbA,EAAsBA,EAAW,MAE1DrG,EAtyBiB,GA8yB5B,SAASe,EAASoB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GA+BzC,SAASrC,GAAc3yF,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAAS4yF,GAAiB5yF,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,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AAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAA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ACpD,mBCCQutI,EACtBC,EACAxtI,EACAxiD,qBAAkB+jL,IAEbkM,6BAAmBztI,UACf4iI,EAAiB,EAAGtxK,OAAO0uC,QAK9B0tI,EAAmB,kBAAaF,EAAqBxtI,EAAKxiD,EAAS8pD,oCAGzEomI,EAAiBviI,WAAa,mBAC5BoiI,EAAqBC,EAAsBxtI,OAAUxiD,KAAYo+B,KAGnE8xJ,EAAiBhC,MAAQ,mBACvB6B,EAAqBC,EAAsBxtI,OACtCxiD,GACHkuL,MAAO9tL,MAAM8D,UAAU+G,OAAOjL,EAAQkuL,MAAOA,GAAOzxK,OAAOkpG,aAGxDuqE,EDzBO1tI,CAAqC2tI,GAAiB3tI,IDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIU9uC,SAAQ,YAClBkyC,GAAOwqI,GAAcxqI,GAAOwqI,UELTC,yBAOPlV,EAAgBoN,QACrBpN,MAAQA,OACRoN,YAAcA,OACdG,SAAWN,EAAcjN,GAI9B12C,EAAW8iD,WAAWxmL,KAAKw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AEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINtiB,IAAK,CACHr8B,IAAK,EACL2+C,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,wE,6BCrwBR,IAAI/8D,EAAKtxE,EAAQ,IACb65N,EAAW75N,EAAQ,KACnBqG,EAAQrG,EAAQ,IAChBi1J,EAASj1J,EAAQ,KACjBy8K,EAAOz8K,EAAQ,KACf9C,EAASmJ,EAAMnJ,OAEf48N,EAAU95N,EAAQ,KAClB+5N,EAAY/5N,EAAQ,KAExB,SAAS+xN,EAAG/1N,GACV,KAAMe,gBAAgBg1N,GACpB,OAAO,IAAIA,EAAG/1N,GAGO,kBAAZA,IACTkB,EAAOzC,OAAOyF,UAAU8B,eAAeC,KAAKgzJ,EAAQj5J,GAClD,iBAAmBA,GAErBA,E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","file":"static/js/2.37cebc99.chunk.js","sourcesContent":["import { Struct, Infer, Result, Context, Describe } from './struct'\nimport { Failure } from './error'\n\n/**\n * Check if a value is an iterator.\n */\n\nfunction isIterable(x: unknown): x is Iterable {\n return isObject(x) && typeof x[Symbol.iterator] === 'function'\n}\n\n/**\n * Check if a value is a plain object.\n */\n\nexport function isObject(x: unknown): x is object {\n return typeof x === 'object' && x != null\n}\n\n/**\n * Check if a value is a plain object.\n */\n\nexport function isPlainObject(x: unknown): x is { [key: string]: any } {\n if (Object.prototype.toString.call(x) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(x)\n return prototype === null || prototype === Object.prototype\n}\n\n/**\n * Return a value as a printable string.\n */\n\nexport function print(value: any): string {\n return typeof value === 'string' ? JSON.stringify(value) : `${value}`\n}\n\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\n\nexport function shiftIterator(input: Iterator): T | undefined {\n const { done, value } = input.next()\n return done ? undefined : value\n}\n\n/**\n * Convert a single validation result to a failure.\n */\n\nexport function toFailure(\n result: string | boolean | Partial,\n context: Context,\n struct: Struct,\n value: any\n): Failure | undefined {\n if (result === true) {\n return\n } else if (result === false) {\n result = {}\n } else if (typeof result === 'string') {\n result = { message: result }\n }\n\n const { path, branch } = context\n const { type } = struct\n const {\n refinement,\n message = `Expected a value of type \\`${type}\\`${\n refinement ? ` with refinement \\`${refinement}\\`` : ''\n }, but received: \\`${print(value)}\\``,\n } = result\n\n return {\n value,\n type,\n refinement,\n key: path[path.length - 1],\n path,\n branch,\n ...result,\n message,\n }\n}\n\n/**\n * Convert a validation result to an iterable of failures.\n */\n\nexport function* toFailures(\n result: Result,\n context: Context,\n struct: Struct,\n value: any\n): IterableIterator {\n if (!isIterable(result)) {\n result = [result]\n }\n\n for (const r of result) {\n const failure = toFailure(r, context, struct, value)\n\n if (failure) {\n yield failure\n }\n }\n}\n\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\n\nexport function* run(\n value: unknown,\n struct: Struct,\n options: {\n path?: any[]\n branch?: any[]\n coerce?: boolean\n mask?: boolean\n } = {}\n): IterableIterator<[Failure, undefined] | [undefined, T]> {\n const { path = [], branch = [value], coerce = false, mask = false } = options\n const ctx: Context = { path, branch }\n\n if (coerce) {\n value = struct.coercer(value, ctx)\n\n if (\n mask &&\n struct.type !== 'type' &&\n isObject(struct.schema) &&\n isObject(value) &&\n !Array.isArray(value)\n ) {\n for (const key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key]\n }\n }\n }\n }\n\n let valid = true\n\n for (const failure of struct.validator(value, ctx)) {\n valid = false\n yield [failure, undefined]\n }\n\n for (let [k, v, s] of struct.entries(value, ctx)) {\n const ts = run(v, s as Struct, {\n path: k === undefined ? path : [...path, k],\n branch: k === undefined ? branch : [...branch, v],\n coerce,\n mask,\n })\n\n for (const t of ts) {\n if (t[0]) {\n valid = false\n yield [t[0], undefined]\n } else if (coerce) {\n v = t[1]\n\n if (k === undefined) {\n value = v\n } else if (value instanceof Map) {\n value.set(k, v)\n } else if (value instanceof Set) {\n value.add(v)\n } else if (isObject(value)) {\n value[k] = v\n }\n }\n }\n }\n\n if (valid) {\n for (const failure of struct.refiner(value as T, ctx)) {\n valid = false\n yield [failure, undefined]\n }\n }\n\n if (valid) {\n yield [undefined, value as T]\n }\n}\n\n/**\n * Assign properties from one type to another, overwriting existing.\n */\n\nexport type Assign = Simplify>\n\n/**\n * A schema for enum structs.\n */\n\nexport type EnumSchema = { [K in T]: K }\n\n/**\n * Check if a type is an exact match.\n */\n\nexport type IsMatch = T extends G ? (G extends T ? T : never) : never\n\n/**\n * Check if a type is a record type.\n */\n\nexport type IsRecord = T extends object\n ? string extends keyof T\n ? T\n : never\n : never\n/**\n * Check if a type is a tuple.\n */\n\nexport type IsTuple = T extends [any]\n ? T\n : T extends [any, any]\n ? T\n : T extends [any, any, any]\n ? T\n : T extends [any, any, any, any]\n ? T\n : T extends [any, any, any, any, any]\n ? T\n : never\n\n/**\n * Check if a type is a union.\n */\n\nexport type IsUnion = (\n T extends any ? (U extends T ? false : true) : false\n) extends false\n ? never\n : T\n\n/**\n * A schema for object structs.\n */\n\nexport type ObjectSchema = Record>\n\n/**\n * Infer a type from an object struct schema.\n */\n\nexport type ObjectType = Simplify<\n Optionalize<{ [K in keyof S]: Infer }>\n>\n\n/**\n * Omit properties from a type that extend from a specific type.\n */\n\nexport type OmitBy = Omit<\n T,\n { [K in keyof T]: V extends Extract ? K : never }[keyof T]\n>\n\n/**\n * Normalize properties of a type that allow `undefined` to make them optional.\n */\n\nexport type Optionalize = OmitBy &\n Partial>\n\n/**\n * Transform an object schema type to represent a partial.\n */\n\nexport type PartialObjectSchema = {\n [K in keyof S]: Struct | undefined>\n}\n\n/**\n * Pick properties from a type that extend from a specific type.\n */\n\nexport type PickBy = Pick<\n T,\n { [K in keyof T]: V extends Extract ? K : never }[keyof T]\n>\n\n/**\n * Simplifies a type definition to its most basic representation.\n */\n\nexport type Simplify = T extends any[] | Date\n ? T\n : { [K in keyof T]: T[K] } & {}\n\nexport type If = B extends true ? Then : Else\n\n/**\n * A schema for any type of struct.\n */\n\nexport type StructSchema = [T] extends [string]\n ? [T] extends [IsMatch]\n ? null\n : [T] extends [IsUnion]\n ? EnumSchema\n : T\n : [T] extends [number]\n ? [T] extends [IsMatch]\n ? null\n : [T] extends [IsUnion]\n ? EnumSchema\n : T\n : [T] extends [boolean]\n ? [T] extends [IsMatch]\n ? null\n : T\n : T extends\n | bigint\n | symbol\n | undefined\n | null\n | Function\n | Date\n | Error\n | RegExp\n | Map\n | WeakMap\n | Set\n | WeakSet\n | Promise\n ? null\n : T extends Array\n ? T extends IsTuple\n ? null\n : Struct\n : T extends object\n ? T extends IsRecord\n ? null\n : { [K in keyof T]: Describe }\n : null\n\n/**\n * A schema for tuple structs.\n */\n\nexport type TupleSchema = { [K in keyof T]: Struct }\n","/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n\nexport type Failure = {\n value: any\n key: any\n type: string\n refinement: string | undefined\n message: string\n branch: Array\n path: Array\n}\n\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\n\nexport class StructError extends TypeError {\n value: any\n key!: any\n type!: string\n refinement!: string | undefined\n path!: Array\n branch!: Array\n failures: () => Array;\n [x: string]: any\n\n constructor(failure: Failure, failures: () => Generator) {\n let cached: Array | undefined\n const { message, ...rest } = failure\n const { path } = failure\n const msg =\n path.length === 0 ? message : `At path: ${path.join('.')} -- ${message}`\n super(msg)\n Object.assign(this, rest)\n this.name = this.constructor.name\n this.failures = () => {\n return (cached ??= [failure, ...failures()])\n }\n }\n}\n","import { toFailures, shiftIterator, StructSchema, run } from './utils'\nimport { StructError, Failure } from './error'\n\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\n\nexport class Struct {\n readonly TYPE!: T\n type: string\n schema: S\n coercer: (value: unknown, context: Context) => unknown\n validator: (value: unknown, context: Context) => Iterable\n refiner: (value: T, context: Context) => Iterable\n entries: (\n value: unknown,\n context: Context\n ) => Iterable<[string | number, unknown, Struct | Struct]>\n\n constructor(props: {\n type: string\n schema: S\n coercer?: Coercer\n validator?: Validator\n refiner?: Refiner\n entries?: Struct['entries']\n }) {\n const {\n type,\n schema,\n validator,\n refiner,\n coercer = (value: unknown) => value,\n entries = function* () {},\n } = props\n\n this.type = type\n this.schema = schema\n this.entries = entries\n this.coercer = coercer\n\n if (validator) {\n this.validator = (value, context) => {\n const result = validator(value, context)\n return toFailures(result, context, this, value)\n }\n } else {\n this.validator = () => []\n }\n\n if (refiner) {\n this.refiner = (value, context) => {\n const result = refiner(value, context)\n return toFailures(result, context, this, value)\n }\n } else {\n this.refiner = () => []\n }\n }\n\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n\n assert(value: unknown): asserts value is T {\n return assert(value, this)\n }\n\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n\n create(value: unknown): T {\n return create(value, this)\n }\n\n /**\n * Check if a value passes the struct's validation.\n */\n\n is(value: unknown): value is T {\n return is(value, this)\n }\n\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n\n mask(value: unknown): T {\n return mask(value, this)\n }\n\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n\n validate(\n value: unknown,\n options: {\n coerce?: boolean\n } = {}\n ): [StructError, undefined] | [undefined, T] {\n return validate(value, this, options)\n }\n}\n\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\n\nexport function assert(\n value: unknown,\n struct: Struct\n): asserts value is T {\n const result = validate(value, struct)\n\n if (result[0]) {\n throw result[0]\n }\n}\n\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\n\nexport function create(value: unknown, struct: Struct): T {\n const result = validate(value, struct, { coerce: true })\n\n if (result[0]) {\n throw result[0]\n } else {\n return result[1]\n }\n}\n\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\n\nexport function mask(value: unknown, struct: Struct): T {\n const result = validate(value, struct, { coerce: true, mask: true })\n\n if (result[0]) {\n throw result[0]\n } else {\n return result[1]\n }\n}\n\n/**\n * Check if a value passes a struct.\n */\n\nexport function is(value: unknown, struct: Struct): value is T {\n const result = validate(value, struct)\n return !result[0]\n}\n\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\n\nexport function validate(\n value: unknown,\n struct: Struct,\n options: {\n coerce?: boolean\n mask?: boolean\n } = {}\n): [StructError, undefined] | [undefined, T] {\n const tuples = run(value, struct, options)\n const tuple = shiftIterator(tuples)!\n\n if (tuple[0]) {\n const error = new StructError(tuple[0], function* () {\n for (const t of tuples) {\n if (t[0]) {\n yield t[0]\n }\n }\n })\n\n return [error, undefined]\n } else {\n const v = tuple[1]\n return [undefined, v]\n }\n}\n\n/**\n * A `Context` contains information about the current location of the\n * validation inside the initial input value.\n */\n\nexport type Context = {\n branch: Array\n path: Array\n}\n\n/**\n * A type utility to extract the type from a `Struct` class.\n */\n\nexport type Infer> = T['TYPE']\n\n/**\n * A type utility to describe that a struct represents a TypeScript type.\n */\n\nexport type Describe = Struct>\n\n/**\n * A `Result` is returned from validation functions.\n */\n\nexport type Result =\n | boolean\n | string\n | Partial\n | Iterable>\n\n/**\n * A `Coercer` takes an unknown value and optionally coerces it.\n */\n\nexport type Coercer = (value: T, context: Context) => unknown\n\n/**\n * A `Validator` takes an unknown value and validates it.\n */\n\nexport type Validator = (value: unknown, context: Context) => Result\n\n/**\n * A `Refiner` takes a value of a known type and validates it against a further\n * constraint.\n */\n\nexport type Refiner = (value: T, context: Context) => Result\n","import { Struct, Context, Validator } from '../struct'\nimport { object, optional } from './types'\nimport { ObjectSchema, Assign, ObjectType, PartialObjectSchema } from '../utils'\n\n/**\n * Create a new struct that combines the properties properties from multiple\n * object structs.\n *\n * Like JavaScript's `Object.assign` utility.\n */\n\nexport function assign(\n A: Struct, A>,\n B: Struct, B>\n): Struct>, Assign>\nexport function assign<\n A extends ObjectSchema,\n B extends ObjectSchema,\n C extends ObjectSchema\n>(\n A: Struct, A>,\n B: Struct, B>,\n C: Struct, C>\n): Struct, C>>, Assign, C>>\nexport function assign<\n A extends ObjectSchema,\n B extends ObjectSchema,\n C extends ObjectSchema,\n D extends ObjectSchema\n>(\n A: Struct, A>,\n B: Struct, B>,\n C: Struct, C>,\n D: Struct, D>\n): Struct<\n ObjectType, C>, D>>,\n Assign, C>, D>\n>\nexport function assign<\n A extends ObjectSchema,\n B extends ObjectSchema,\n C extends ObjectSchema,\n D extends ObjectSchema,\n E extends ObjectSchema\n>(\n A: Struct, A>,\n B: Struct, B>,\n C: Struct, C>,\n D: Struct, D>,\n E: Struct, E>\n): Struct<\n ObjectType, C>, D>, E>>,\n Assign, C>, D>, E>\n>\nexport function assign(...Structs: Struct[]): any {\n const schemas = Structs.map((s) => s.schema)\n const schema = Object.assign({}, ...schemas)\n return object(schema)\n}\n\n/**\n * Define a new struct type with a custom validation function.\n */\n\nexport function define(name: string, validator: Validator): Struct {\n return new Struct({ type: name, schema: null, validator })\n}\n\n/**\n * Create a new struct based on an existing struct, but the value is allowed to\n * be `undefined`. `log` will be called if the value is not `undefined`.\n */\n\nexport function deprecated(\n struct: Struct,\n log: (value: unknown, ctx: Context) => void\n): Struct {\n return new Struct({\n ...struct,\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n validator(value, ctx) {\n if (value === undefined) {\n return true\n } else {\n log(value, ctx)\n return struct.validator(value, ctx)\n }\n },\n })\n}\n\n/**\n * Create a struct with dynamic validation logic.\n *\n * The callback will receive the value currently being validated, and must\n * return a struct object to validate it with. This can be useful to model\n * validation logic that changes based on its input.\n */\n\nexport function dynamic(\n fn: (value: unknown, ctx: Context) => Struct\n): Struct {\n return new Struct({\n type: 'dynamic',\n schema: null,\n *entries(value, ctx) {\n const struct = fn(value, ctx)\n yield* struct.entries(value, ctx)\n },\n validator(value, ctx) {\n const struct = fn(value, ctx)\n return struct.validator(value, ctx)\n },\n coercer(value, ctx) {\n const struct = fn(value, ctx)\n return struct.coercer(value, ctx)\n },\n })\n}\n\n/**\n * Create a struct with lazily evaluated validation logic.\n *\n * The first time validation is run with the struct, the callback will be called\n * and must return a struct object to use. This is useful for cases where you\n * want to have self-referential structs for nested data structures to avoid a\n * circular definition problem.\n */\n\nexport function lazy(fn: () => Struct): Struct {\n let struct: Struct | undefined\n return new Struct({\n type: 'lazy',\n schema: null,\n *entries(value, ctx) {\n struct ??= fn()\n yield* struct.entries(value, ctx)\n },\n validator(value, ctx) {\n struct ??= fn()\n return struct.validator(value, ctx)\n },\n coercer(value, ctx) {\n struct ??= fn()\n return struct.coercer(value, ctx)\n },\n })\n}\n\n/**\n * Create a new struct based on an existing object struct, but excluding\n * specific properties.\n *\n * Like TypeScript's `Omit` utility.\n */\n\nexport function omit(\n struct: Struct, S>,\n keys: K[]\n): Struct>, Omit> {\n const { schema } = struct\n const subschema: any = { ...schema }\n\n for (const key of keys) {\n delete subschema[key]\n }\n\n return object(subschema as Omit)\n}\n\n/**\n * Create a new struct based on an existing object struct, but with all of its\n * properties allowed to be `undefined`.\n *\n * Like TypeScript's `Partial` utility.\n */\n\nexport function partial(\n struct: Struct, S> | S\n): Struct>, PartialObjectSchema> {\n const schema: any =\n struct instanceof Struct ? { ...struct.schema } : { ...struct }\n\n for (const key in schema) {\n schema[key] = optional(schema[key])\n }\n\n return object(schema) as any\n}\n\n/**\n * Create a new struct based on an existing object struct, but only including\n * specific properties.\n *\n * Like TypeScript's `Pick` utility.\n */\n\nexport function pick(\n struct: Struct, S>,\n keys: K[]\n): Struct>, Pick> {\n const { schema } = struct\n const subschema: any = {}\n\n for (const key of keys) {\n subschema[key] = schema[key]\n }\n\n return object(subschema as Pick)\n}\n\n/**\n * Define a new struct type with a custom validation function.\n *\n * @deprecated This function has been renamed to `define`.\n */\n\nexport function struct(name: string, validator: Validator): Struct {\n console.warn(\n 'superstruct@0.11 - The `struct` helper has been renamed to `define`.'\n )\n\n return define(name, validator)\n}\n","import { Infer, Struct } from '../struct'\nimport { define } from './utilities'\nimport {\n TupleSchema,\n ObjectSchema,\n ObjectType,\n print,\n run,\n isObject,\n} from '../utils'\n\n/**\n * Ensure that any value passes validation.\n */\n\nexport function any(): Struct {\n return define('any', () => true)\n}\n\n/**\n * Ensure that a value is an array and that its elements are of a specific type.\n *\n * Note: If you omit the element struct, the arrays elements will not be\n * iterated at all. This can be helpful for cases where performance is critical,\n * and it is preferred to using `array(any())`.\n */\n\nexport function array>(Element: T): Struct[], T>\nexport function array(): Struct\nexport function array>(Element?: T): any {\n return new Struct({\n type: 'array',\n schema: Element,\n *entries(value) {\n if (Element && Array.isArray(value)) {\n for (const [i, v] of value.entries()) {\n yield [i, v, Element]\n }\n }\n },\n coercer(value) {\n return Array.isArray(value) ? value.slice() : value\n },\n validator(value) {\n return (\n Array.isArray(value) ||\n `Expected an array value, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value is a boolean.\n */\n\nexport function boolean(): Struct {\n return define('boolean', (value) => {\n return typeof value === 'boolean'\n })\n}\n\n/**\n * Ensure that a value is a valid `Date`.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\n\nexport function date(): Struct {\n return define('date', (value) => {\n return (\n (value instanceof Date && !isNaN(value.getTime())) ||\n `Expected a valid \\`Date\\` object, but received: ${print(value)}`\n )\n })\n}\n\n/**\n * Ensure that a value is one of a set of potential values.\n *\n * Note: after creating the struct, you can access the definition of the\n * potential values as `struct.schema`.\n */\n\nexport function enums(\n values: readonly T[]\n): Struct\nexport function enums(\n values: readonly T[]\n): Struct\nexport function enums(values: readonly T[]): any {\n const schema: any = {}\n const description = values.map((v) => print(v)).join()\n\n for (const key of values) {\n schema[key] = key\n }\n\n return new Struct({\n type: 'enums',\n schema,\n validator(value) {\n return (\n values.includes(value as any) ||\n `Expected one of \\`${description}\\`, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value is a function.\n */\n\nexport function func(): Struct {\n return define('func', (value) => {\n return (\n typeof value === 'function' ||\n `Expected a function, but received: ${print(value)}`\n )\n })\n}\n\n/**\n * Ensure that a value is an instance of a specific class.\n */\n\nexport function instance(\n Class: T\n): Struct, null> {\n return define('instance', (value) => {\n return (\n value instanceof Class ||\n `Expected a \\`${Class.name}\\` instance, but received: ${print(value)}`\n )\n })\n}\n\n/**\n * Ensure that a value is an integer.\n */\n\nexport function integer(): Struct {\n return define('integer', (value) => {\n return (\n (typeof value === 'number' && !isNaN(value) && Number.isInteger(value)) ||\n `Expected an integer, but received: ${print(value)}`\n )\n })\n}\n\n/**\n * Ensure that a value matches all of a set of types.\n */\n\nexport function intersection(Structs: TupleSchema<[A]>): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]>\n): Struct\nexport function intersection(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]>\n): Struct<\n A & B & C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q,\n null\n>\nexport function intersection(Structs: Array>): any {\n return new Struct({\n type: 'intersection',\n schema: null,\n *entries(value, ctx) {\n for (const S of Structs) {\n yield* S.entries(value, ctx)\n }\n },\n *validator(value, ctx) {\n for (const S of Structs) {\n yield* S.validator(value, ctx)\n }\n },\n *refiner(value, ctx) {\n for (const S of Structs) {\n yield* S.refiner(value, ctx)\n }\n },\n })\n}\n\n/**\n * Ensure that a value is an exact value, using `===` for comparison.\n */\n\nexport function literal(constant: T): Struct\nexport function literal(constant: T): Struct\nexport function literal(constant: T): Struct\nexport function literal(constant: T): Struct\nexport function literal(constant: T): any {\n const description = print(constant)\n const t = typeof constant\n return new Struct({\n type: 'literal',\n schema:\n t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n validator(value) {\n return (\n value === constant ||\n `Expected the literal \\`${description}\\`, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value is a `Map` object, and that its keys and values are of\n * specific types.\n */\n\nexport function map(): Struct, null>\nexport function map(\n Key: Struct,\n Value: Struct\n): Struct, null>\nexport function map(Key?: Struct, Value?: Struct): any {\n return new Struct({\n type: 'map',\n schema: null,\n *entries(value) {\n if (Key && Value && value instanceof Map) {\n for (const [k, v] of value.entries()) {\n yield [k as string, k, Key]\n yield [k as string, v, Value]\n }\n }\n },\n coercer(value) {\n return value instanceof Map ? new Map(value) : value\n },\n validator(value) {\n return (\n value instanceof Map ||\n `Expected a \\`Map\\` object, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that no value ever passes validation.\n */\n\nexport function never(): Struct {\n return define('never', () => false)\n}\n\n/**\n * Augment an existing struct to allow `null` values.\n */\n\nexport function nullable(struct: Struct): Struct {\n return new Struct({\n ...struct,\n validator: (value, ctx) => value === null || struct.validator(value, ctx),\n refiner: (value, ctx) => value === null || struct.refiner(value, ctx),\n })\n}\n\n/**\n * Ensure that a value is a number.\n */\n\nexport function number(): Struct {\n return define('number', (value) => {\n return (\n (typeof value === 'number' && !isNaN(value)) ||\n `Expected a number, but received: ${print(value)}`\n )\n })\n}\n\n/**\n * Ensure that a value is an object, that is has a known set of properties,\n * and that its properties are of specific types.\n *\n * Note: Unrecognized properties will fail validation.\n */\n\nexport function object(): Struct, null>\nexport function object(\n schema: S\n): Struct, S>\nexport function object(schema?: S): any {\n const knowns = schema ? Object.keys(schema) : []\n const Never = never()\n return new Struct({\n type: 'object',\n schema: schema ? schema : null,\n *entries(value) {\n if (schema && isObject(value)) {\n const unknowns = new Set(Object.keys(value))\n\n for (const key of knowns) {\n unknowns.delete(key)\n yield [key, value[key], schema[key]]\n }\n\n for (const key of unknowns) {\n yield [key, value[key], Never]\n }\n }\n },\n validator(value) {\n return (\n isObject(value) || `Expected an object, but received: ${print(value)}`\n )\n },\n coercer(value) {\n return isObject(value) ? { ...value } : value\n },\n })\n}\n\n/**\n * Augment a struct to allow `undefined` values.\n */\n\nexport function optional(struct: Struct): Struct {\n return new Struct({\n ...struct,\n validator: (value, ctx) =>\n value === undefined || struct.validator(value, ctx),\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n })\n}\n\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\n\nexport function record(\n Key: Struct,\n Value: Struct\n): Struct, null> {\n return new Struct({\n type: 'record',\n schema: null,\n *entries(value) {\n if (isObject(value)) {\n for (const k in value) {\n const v = value[k]\n yield [k, k, Key]\n yield [k, v, Value]\n }\n }\n },\n validator(value) {\n return (\n isObject(value) || `Expected an object, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value is a `RegExp`.\n *\n * Note: this does not test the value against the regular expression! For that\n * you need to use the `pattern()` refinement.\n */\n\nexport function regexp(): Struct {\n return define('regexp', (value) => {\n return value instanceof RegExp\n })\n}\n\n/**\n * Ensure that a value is a `Set` object, and that its elements are of a\n * specific type.\n */\n\nexport function set(): Struct, null>\nexport function set(Element: Struct): Struct, null>\nexport function set(Element?: Struct): any {\n return new Struct({\n type: 'set',\n schema: null,\n *entries(value) {\n if (Element && value instanceof Set) {\n for (const v of value) {\n yield [v as string, v, Element]\n }\n }\n },\n coercer(value) {\n return value instanceof Set ? new Set(value) : value\n },\n validator(value) {\n return (\n value instanceof Set ||\n `Expected a \\`Set\\` object, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value is a string.\n */\n\nexport function string(): Struct {\n return define('string', (value) => {\n return (\n typeof value === 'string' ||\n `Expected a string, but received: ${print(value)}`\n )\n })\n}\n\n/**\n * Ensure that a value is a tuple of a specific length, and that each of its\n * elements is of a specific type.\n */\n\nexport function tuple(Structs: TupleSchema<[A]>): Struct<[A], null>\nexport function tuple(Structs: TupleSchema<[A, B]>): Struct<[A, B], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C]>\n): Struct<[A, B, C], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D]>\n): Struct<[A, B, C, D], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E]>\n): Struct<[A, B, C, D, E], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F]>\n): Struct<[A, B, C, D, E, F], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G]>\n): Struct<[A, B, C, D, E, F, G], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H]>\n): Struct<[A, B, C, D, E, F, G, H], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I]>\n): Struct<[A, B, C, D, E, F, G, H, I], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J]>\n): Struct<[A, B, C, D, E, F, G, H, I, J], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K, L], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K, L, M], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K, L, M, N], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P], null>\nexport function tuple(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]>\n): Struct<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q], null>\nexport function tuple(Elements: Struct[]): any {\n const Never = never()\n\n return new Struct({\n type: 'tuple',\n schema: null,\n *entries(value) {\n if (Array.isArray(value)) {\n const length = Math.max(Elements.length, value.length)\n\n for (let i = 0; i < length; i++) {\n yield [i, value[i], Elements[i] || Never]\n }\n }\n },\n validator(value) {\n return (\n Array.isArray(value) ||\n `Expected an array, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\n\nexport function type(\n schema: S\n): Struct, S> {\n const keys = Object.keys(schema)\n return new Struct({\n type: 'type',\n schema,\n *entries(value) {\n if (isObject(value)) {\n for (const k of keys) {\n yield [k, value[k], schema[k]]\n }\n }\n },\n validator(value) {\n return (\n isObject(value) || `Expected an object, but received: ${print(value)}`\n )\n },\n })\n}\n\n/**\n * Ensure that a value matches one of a set of types.\n */\n\nexport function union(Structs: TupleSchema<[A]>): Struct\nexport function union(Structs: TupleSchema<[A, B]>): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P]>\n): Struct\nexport function union(\n Structs: TupleSchema<[A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q]>\n): Struct<\n A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q,\n null\n>\nexport function union(Structs: Struct[]): any {\n const description = Structs.map((s) => s.type).join(' | ')\n return new Struct({\n type: 'union',\n schema: null,\n validator(value, ctx) {\n const failures = []\n\n for (const S of Structs) {\n const [...tuples] = run(value, S, ctx)\n const [first] = tuples\n\n if (!first[0]) {\n return []\n } else {\n for (const [failure] of tuples) {\n if (failure) {\n failures.push(failure)\n }\n }\n }\n }\n\n return [\n `Expected the value to satisfy a union of \\`${description}\\`, but received: ${print(\n value\n )}`,\n ...failures,\n ]\n },\n })\n}\n\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\n\nexport function unknown(): Struct {\n return define('unknown', () => true)\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { Struct, is, Coercer } from '../struct'\nimport { isPlainObject } from '../utils'\nimport { string, unknown } from './types'\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nexport function coerce(\n struct: Struct,\n condition: Struct,\n coercer: Coercer\n): Struct {\n return new Struct({\n ...struct,\n coercer: (value, ctx) => {\n return is(value, condition)\n ? struct.coercer(coercer(value, ctx), ctx)\n : struct.coercer(value, ctx)\n },\n })\n}\n\n/**\n * Augment a struct to replace `undefined` values with a default.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nexport function defaulted(\n struct: Struct,\n fallback: any,\n options: {\n strict?: boolean\n } = {}\n): Struct {\n return coerce(struct, unknown(), (x) => {\n const f = typeof fallback === 'function' ? fallback() : fallback\n\n if (x === undefined) {\n return f\n }\n\n if (!options.strict && isPlainObject(x) && isPlainObject(f)) {\n const ret = { ...x }\n let changed = false\n\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key]\n changed = true\n }\n }\n\n if (changed) {\n return ret\n }\n }\n\n return x\n })\n}\n\n/**\n * Augment a struct to trim string inputs.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nexport function trimmed(struct: Struct): Struct {\n return coerce(struct, string(), (x) => x.trim())\n}\n","module.exports = require(\"regenerator-runtime\");\n","'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","/* The MIT License (MIT)\n *\n * Copyright 2015-2018 Peter A. Bigot\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * Support for translating between Uint8Array instances and JavaScript\n * native types.\n *\n * {@link module:Layout~Layout|Layout} is the basis of a class\n * hierarchy that associates property names with sequences of encoded\n * bytes.\n *\n * Layouts are supported for these scalar (numeric) types:\n * * {@link module:Layout~UInt|Unsigned integers in little-endian\n * format} with {@link module:Layout.u8|8-bit}, {@link\n * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\n * {@link module:Layout.u32|32-bit}, {@link\n * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\n * representation ranges;\n * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\n * format} with {@link module:Layout.u16be|16-bit}, {@link\n * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\n * {@link module:Layout.u40be|40-bit}, and {@link\n * module:Layout.u48be|48-bit} representation ranges;\n * * {@link module:Layout~Int|Signed integers in little-endian\n * format} with {@link module:Layout.s8|8-bit}, {@link\n * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\n * {@link module:Layout.s32|32-bit}, {@link\n * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\n * representation ranges;\n * * {@link module:Layout~IntBE|Signed integers in big-endian format}\n * with {@link module:Layout.s16be|16-bit}, {@link\n * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\n * {@link module:Layout.s40be|40-bit}, and {@link\n * module:Layout.s48be|48-bit} representation ranges;\n * * 64-bit integral values that decode to an exact (if magnitude is\n * less than 2^53) or nearby integral Number in {@link\n * module:Layout.nu64|unsigned little-endian}, {@link\n * module:Layout.nu64be|unsigned big-endian}, {@link\n * module:Layout.ns64|signed little-endian}, and {@link\n * module:Layout.ns64be|unsigned big-endian} encodings;\n * * 32-bit floating point values with {@link\n * module:Layout.f32|little-endian} and {@link\n * module:Layout.f32be|big-endian} representations;\n * * 64-bit floating point values with {@link\n * module:Layout.f64|little-endian} and {@link\n * module:Layout.f64be|big-endian} representations;\n * * {@link module:Layout.const|Constants} that take no space in the\n * encoded expression.\n *\n * and for these aggregate types:\n * * {@link module:Layout.seq|Sequence}s of instances of a {@link\n * module:Layout~Layout|Layout}, with JavaScript representation as\n * an Array and constant or data-dependent {@link\n * module:Layout~Sequence#count|length};\n * * {@link module:Layout.struct|Structure}s that aggregate a\n * heterogeneous sequence of {@link module:Layout~Layout|Layout}\n * instances, with JavaScript representation as an Object;\n * * {@link module:Layout.union|Union}s that support multiple {@link\n * module:Layout~VariantLayout|variant layouts} over a fixed\n * (padded) or variable (not padded) span of bytes, using an\n * unsigned integer at the start of the data or a separate {@link\n * module:Layout.unionLayoutDiscriminator|layout element} to\n * determine which layout to use when interpreting the buffer\n * contents;\n * * {@link module:Layout.bits|BitStructure}s that contain a sequence\n * of individual {@link\n * module:Layout~BitStructure#addField|BitField}s packed into an 8,\n * 16, 24, or 32-bit unsigned integer starting at the least- or\n * most-significant bit;\n * * {@link module:Layout.cstr|C strings} of varying length;\n * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\n * module:Layout~Blob#length|length} raw data.\n *\n * All {@link module:Layout~Layout|Layout} instances are immutable\n * after construction, to prevent internal state from becoming\n * inconsistent.\n *\n * @local Layout\n * @local ExternalLayout\n * @local GreedyCount\n * @local OffsetLayout\n * @local UInt\n * @local UIntBE\n * @local Int\n * @local IntBE\n * @local NearUInt64\n * @local NearUInt64BE\n * @local NearInt64\n * @local NearInt64BE\n * @local Float\n * @local FloatBE\n * @local Double\n * @local DoubleBE\n * @local Sequence\n * @local Structure\n * @local UnionDiscriminator\n * @local UnionLayoutDiscriminator\n * @local Union\n * @local VariantLayout\n * @local BitStructure\n * @local BitField\n * @local Boolean\n * @local Blob\n * @local CString\n * @local Constant\n * @local bindConstructorLayout\n * @module Layout\n * @license MIT\n * @author Peter A. Bigot\n * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\n */\n'use strict';\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nexports.__esModule = true;\nexports.s16 = exports.s8 = exports.nu64be = exports.u48be = exports.u40be = exports.u32be = exports.u24be = exports.u16be = exports.nu64 = exports.u48 = exports.u40 = exports.u32 = exports.u24 = exports.u16 = exports.u8 = exports.offset = exports.greedy = exports.Constant = exports.UTF8 = exports.CString = exports.Blob = exports.Boolean = exports.BitField = exports.BitStructure = exports.VariantLayout = exports.Union = exports.UnionLayoutDiscriminator = exports.UnionDiscriminator = exports.Structure = exports.Sequence = exports.DoubleBE = exports.Double = exports.FloatBE = exports.Float = exports.NearInt64BE = exports.NearInt64 = exports.NearUInt64BE = exports.NearUInt64 = exports.IntBE = exports.Int = exports.UIntBE = exports.UInt = exports.OffsetLayout = exports.GreedyCount = exports.ExternalLayout = exports.bindConstructorLayout = exports.nameWithProperty = exports.Layout = exports.uint8ArrayToBuffer = exports.checkUint8Array = void 0;\nexports.constant = exports.utf8 = exports.cstr = exports.blob = exports.unionLayoutDiscriminator = exports.union = exports.seq = exports.bits = exports.struct = exports.f64be = exports.f64 = exports.f32be = exports.f32 = exports.ns64be = exports.s48be = exports.s40be = exports.s32be = exports.s24be = exports.s16be = exports.ns64 = exports.s48 = exports.s40 = exports.s32 = exports.s24 = void 0;\nvar buffer_1 = require(\"buffer\");\n/* Check if a value is a Uint8Array.\n *\n * @ignore */\nfunction checkUint8Array(b) {\n if (!(b instanceof Uint8Array)) {\n throw new TypeError('b must be a Uint8Array');\n }\n}\nexports.checkUint8Array = checkUint8Array;\n/* Create a Buffer instance from a Uint8Array.\n *\n * @ignore */\nfunction uint8ArrayToBuffer(b) {\n checkUint8Array(b);\n return buffer_1.Buffer.from(b.buffer, b.byteOffset, b.length);\n}\nexports.uint8ArrayToBuffer = uint8ArrayToBuffer;\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\nvar Layout = /** @class */ (function () {\n function Layout(span, property) {\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n this.span = span;\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n Layout.prototype.makeDestinationObject = function () {\n return {};\n };\n /**\n * Decode from a Uint8Array into a JavaScript value.\n *\n * @param {Uint8Array} b - the buffer from which encoded data is read.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {(Number|Array|Object)} - the value of the decoded data.\n *\n * @abstract\n */\n Layout.prototype.decode = function (b, offset) {\n throw new Error('Layout is abstract');\n };\n /**\n * Encode a JavaScript value into a Uint8Array.\n *\n * @param {(Number|Array|Object)} src - the value to be encoded into\n * the buffer. The type accepted depends on the (sub-)type of {@link\n * Layout}.\n *\n * @param {Uint8Array} b - the buffer into which encoded data will be\n * written.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {Number} - the number of bytes encoded, including the\n * space skipped for internal padding, but excluding data such as\n * {@link Sequence#count|lengths} when stored {@link\n * ExternalLayout|externally}. This is the adjustment to `offset`\n * producing the offset where data for the next layout would be\n * written.\n *\n * @abstract\n */\n Layout.prototype.encode = function (src, b, offset) {\n throw new Error('Layout is abstract');\n };\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Uint8Array} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n Layout.prototype.getSpan = function (b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n return this.span;\n };\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n Layout.prototype.replicate = function (property) {\n var rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n };\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n Layout.prototype.fromArray = function (values) {\n return undefined;\n };\n return Layout;\n}());\nexports.Layout = Layout;\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n return name;\n}\nexports.nameWithProperty = nameWithProperty;\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n if (Object.prototype.hasOwnProperty.call(Class, 'layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n if (!(layout && (layout instanceof Layout))) {\n throw new TypeError('layout must be a Layout');\n }\n if (Object.prototype.hasOwnProperty.call(layout, 'boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n layout.makeDestinationObject = (function () { return new Class(); });\n Object.defineProperty(Class.prototype, 'encode', {\n value: function (b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true\n });\n Object.defineProperty(Class, 'decode', {\n value: function (b, offset) {\n return layout.decode(b, offset);\n },\n writable: true\n });\n}\nexports.bindConstructorLayout = bindConstructorLayout;\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\nvar ExternalLayout = /** @class */ (function (_super) {\n __extends(ExternalLayout, _super);\n function ExternalLayout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n ExternalLayout.prototype.isCount = function () {\n throw new Error('ExternalLayout is abstract');\n };\n return ExternalLayout;\n}(Layout));\nexports.ExternalLayout = ExternalLayout;\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\nvar GreedyCount = /** @class */ (function (_super) {\n __extends(GreedyCount, _super);\n function GreedyCount(elementSpan, property) {\n var _this = this;\n if (undefined === elementSpan) {\n elementSpan = 1;\n }\n if ((!Number.isInteger(elementSpan)) || (0 >= elementSpan)) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n _this = _super.call(this, -1, property) || this;\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n _this.elementSpan = elementSpan;\n return _this;\n }\n /** @override */\n GreedyCount.prototype.isCount = function () {\n return true;\n };\n /** @override */\n GreedyCount.prototype.decode = function (b, offset) {\n checkUint8Array(b);\n if (undefined === offset) {\n offset = 0;\n }\n var rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n };\n /** @override */\n GreedyCount.prototype.encode = function (src, b, offset) {\n return 0;\n };\n return GreedyCount;\n}(ExternalLayout));\nexports.GreedyCount = GreedyCount;\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\nvar OffsetLayout = /** @class */ (function (_super) {\n __extends(OffsetLayout, _super);\n function OffsetLayout(layout, offset, property) {\n var _this = this;\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if (undefined === offset) {\n offset = 0;\n }\n else if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n _this = _super.call(this, layout.span, property || layout.property) || this;\n /** The subordinated layout. */\n _this.layout = layout;\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Uint8Array\n * being accessed. */\n _this.offset = offset;\n return _this;\n }\n /** @override */\n OffsetLayout.prototype.isCount = function () {\n return ((this.layout instanceof UInt)\n || (this.layout instanceof UIntBE));\n };\n /** @override */\n OffsetLayout.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.decode(b, offset + this.offset);\n };\n /** @override */\n OffsetLayout.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.encode(src, b, offset + this.offset);\n };\n return OffsetLayout;\n}(ExternalLayout));\nexports.OffsetLayout = OffsetLayout;\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar UInt = /** @class */ (function (_super) {\n __extends(UInt, _super);\n function UInt(span, property) {\n var _this = _super.call(this, span, property) || this;\n if (6 < _this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n return _this;\n }\n /** @override */\n UInt.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readUIntLE(offset, this.span);\n };\n /** @override */\n UInt.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeUIntLE(src, offset, this.span);\n return this.span;\n };\n return UInt;\n}(Layout));\nexports.UInt = UInt;\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar UIntBE = /** @class */ (function (_super) {\n __extends(UIntBE, _super);\n function UIntBE(span, property) {\n var _this = _super.call(this, span, property) || this;\n if (6 < _this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n return _this;\n }\n /** @override */\n UIntBE.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readUIntBE(offset, this.span);\n };\n /** @override */\n UIntBE.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeUIntBE(src, offset, this.span);\n return this.span;\n };\n return UIntBE;\n}(Layout));\nexports.UIntBE = UIntBE;\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Int = /** @class */ (function (_super) {\n __extends(Int, _super);\n function Int(span, property) {\n var _this = _super.call(this, span, property) || this;\n if (6 < _this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n return _this;\n }\n /** @override */\n Int.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readIntLE(offset, this.span);\n };\n /** @override */\n Int.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeIntLE(src, offset, this.span);\n return this.span;\n };\n return Int;\n}(Layout));\nexports.Int = Int;\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar IntBE = /** @class */ (function (_super) {\n __extends(IntBE, _super);\n function IntBE(span, property) {\n var _this = _super.call(this, span, property) || this;\n if (6 < _this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n return _this;\n }\n /** @override */\n IntBE.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readIntBE(offset, this.span);\n };\n /** @override */\n IntBE.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeIntBE(src, offset, this.span);\n return this.span;\n };\n return IntBE;\n}(Layout));\nexports.IntBE = IntBE;\nvar V2E32 = Math.pow(2, 32);\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\nfunction divmodInt64(src) {\n var hi32 = Math.floor(src / V2E32);\n var lo32 = src - (hi32 * V2E32);\n return { hi32: hi32, lo32: lo32 };\n}\n/* Reconstruct Number from quotient and non-negative remainder */\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nvar NearUInt64 = /** @class */ (function (_super) {\n __extends(NearUInt64, _super);\n function NearUInt64(property) {\n return _super.call(this, 8, property) || this;\n }\n /** @override */\n NearUInt64.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var buffer = uint8ArrayToBuffer(b);\n var lo32 = buffer.readUInt32LE(offset);\n var hi32 = buffer.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n };\n /** @override */\n NearUInt64.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var split = divmodInt64(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n };\n return NearUInt64;\n}(Layout));\nexports.NearUInt64 = NearUInt64;\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nvar NearUInt64BE = /** @class */ (function (_super) {\n __extends(NearUInt64BE, _super);\n function NearUInt64BE(property) {\n return _super.call(this, 8, property) || this;\n }\n /** @override */\n NearUInt64BE.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var buffer = uint8ArrayToBuffer(b);\n var hi32 = buffer.readUInt32BE(offset);\n var lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n };\n /** @override */\n NearUInt64BE.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var split = divmodInt64(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n };\n return NearUInt64BE;\n}(Layout));\nexports.NearUInt64BE = NearUInt64BE;\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nvar NearInt64 = /** @class */ (function (_super) {\n __extends(NearInt64, _super);\n function NearInt64(property) {\n return _super.call(this, 8, property) || this;\n }\n /** @override */\n NearInt64.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var buffer = uint8ArrayToBuffer(b);\n var lo32 = buffer.readUInt32LE(offset);\n var hi32 = buffer.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n };\n /** @override */\n NearInt64.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var split = divmodInt64(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeUInt32LE(split.lo32, offset);\n buffer.writeInt32LE(split.hi32, offset + 4);\n return 8;\n };\n return NearInt64;\n}(Layout));\nexports.NearInt64 = NearInt64;\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nvar NearInt64BE = /** @class */ (function (_super) {\n __extends(NearInt64BE, _super);\n function NearInt64BE(property) {\n return _super.call(this, 8, property) || this;\n }\n /** @override */\n NearInt64BE.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var buffer = uint8ArrayToBuffer(b);\n var hi32 = buffer.readInt32BE(offset);\n var lo32 = buffer.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n };\n /** @override */\n NearInt64BE.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var split = divmodInt64(src);\n var buffer = uint8ArrayToBuffer(b);\n buffer.writeInt32BE(split.hi32, offset);\n buffer.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n };\n return NearInt64BE;\n}(Layout));\nexports.NearInt64BE = NearInt64BE;\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Float = /** @class */ (function (_super) {\n __extends(Float, _super);\n function Float(property) {\n return _super.call(this, 4, property) || this;\n }\n /** @override */\n Float.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readFloatLE(offset);\n };\n /** @override */\n Float.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeFloatLE(src, offset);\n return 4;\n };\n return Float;\n}(Layout));\nexports.Float = Float;\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar FloatBE = /** @class */ (function (_super) {\n __extends(FloatBE, _super);\n function FloatBE(property) {\n return _super.call(this, 4, property) || this;\n }\n /** @override */\n FloatBE.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readFloatBE(offset);\n };\n /** @override */\n FloatBE.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeFloatBE(src, offset);\n return 4;\n };\n return FloatBE;\n}(Layout));\nexports.FloatBE = FloatBE;\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Double = /** @class */ (function (_super) {\n __extends(Double, _super);\n function Double(property) {\n return _super.call(this, 8, property) || this;\n }\n /** @override */\n Double.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readDoubleLE(offset);\n };\n /** @override */\n Double.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeDoubleLE(src, offset);\n return 8;\n };\n return Double;\n}(Layout));\nexports.Double = Double;\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar DoubleBE = /** @class */ (function (_super) {\n __extends(DoubleBE, _super);\n function DoubleBE(property) {\n return _super.call(this, 8, property) || this;\n }\n /** @override */\n DoubleBE.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return uint8ArrayToBuffer(b).readDoubleBE(offset);\n };\n /** @override */\n DoubleBE.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n uint8ArrayToBuffer(b).writeDoubleBE(src, offset);\n return 8;\n };\n return DoubleBE;\n}(Layout));\nexports.DoubleBE = DoubleBE;\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Sequence = /** @class */ (function (_super) {\n __extends(Sequence, _super);\n function Sequence(elementLayout, count, property) {\n var _this = this;\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n if (!(((count instanceof ExternalLayout) && count.isCount())\n || (Number.isInteger(count) && (0 <= count)))) {\n throw new TypeError('count must be non-negative integer '\n + 'or an unsigned integer ExternalLayout');\n }\n var span = -1;\n if ((!(count instanceof ExternalLayout))\n && (0 < elementLayout.span)) {\n span = count * elementLayout.span;\n }\n _this = _super.call(this, span, property) || this;\n /** The layout for individual elements of the sequence. */\n _this.elementLayout = elementLayout;\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n _this.count = count;\n return _this;\n }\n /** @override */\n Sequence.prototype.getSpan = function (b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n var span = 0;\n var count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n }\n else {\n var idx = 0;\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n return span;\n };\n /** @override */\n Sequence.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var rv = [];\n var i = 0;\n var count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n return rv;\n };\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n Sequence.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var elo = this.elementLayout;\n var span = src.reduce(function (span, v) {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n return span;\n };\n return Sequence;\n}(Layout));\nexports.Sequence = Sequence;\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\nvar Structure = /** @class */ (function (_super) {\n __extends(Structure, _super);\n function Structure(fields, property, decodePrefixes) {\n var _this = this;\n if (!(Array.isArray(fields)\n && fields.reduce(function (acc, v) { return acc && (v instanceof Layout); }, true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n if (('boolean' === typeof property)\n && (undefined === decodePrefixes)) {\n decodePrefixes = property;\n property = undefined;\n }\n /* Verify absence of unnamed variable-length fields. */\n for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {\n var fd = fields_1[_i];\n if ((0 > fd.span)\n && (undefined === fd.property)) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n var span = -1;\n try {\n span = fields.reduce(function (span, fd) { return span + fd.getSpan(); }, 0);\n }\n catch (e) {\n // ignore error\n }\n _this = _super.call(this, span, property) || this;\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n _this.fields = fields;\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n _this.decodePrefixes = !!decodePrefixes;\n return _this;\n }\n /** @override */\n Structure.prototype.getSpan = function (b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n var span = 0;\n try {\n span = this.fields.reduce(function (span, fd) {\n var fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n }\n catch (e) {\n throw new RangeError('indeterminate span');\n }\n return span;\n };\n /** @override */\n Structure.prototype.decode = function (b, offset) {\n checkUint8Array(b);\n if (undefined === offset) {\n offset = 0;\n }\n var dest = this.makeDestinationObject();\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n offset += fd.getSpan(b, offset);\n if (this.decodePrefixes\n && (b.length === offset)) {\n break;\n }\n }\n return dest;\n };\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n Structure.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var firstOffset = offset;\n var lastOffset = 0;\n var lastWrote = 0;\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n var span = fd.span;\n lastWrote = (0 < span) ? span : 0;\n if (undefined !== fd.property) {\n var fv = src[fd.property];\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n return (lastOffset + lastWrote) - firstOffset;\n };\n /** @override */\n Structure.prototype.fromArray = function (values) {\n var dest = this.makeDestinationObject();\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if ((undefined !== fd.property)\n && (0 < values.length)) {\n dest[fd.property] = values.shift();\n }\n }\n return dest;\n };\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n Structure.prototype.layoutFor = function (property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if (fd.property === property) {\n return fd;\n }\n }\n return undefined;\n };\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n Structure.prototype.offsetOf = function (property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n var offset = 0;\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if (fd.property === property) {\n return offset;\n }\n if (0 > fd.span) {\n offset = -1;\n }\n else if (0 <= offset) {\n offset += fd.span;\n }\n }\n return undefined;\n };\n return Structure;\n}(Layout));\nexports.Structure = Structure;\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\nvar UnionDiscriminator = /** @class */ (function () {\n function UnionDiscriminator(property) {\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n this.property = property;\n }\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n UnionDiscriminator.prototype.decode = function (b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n };\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n UnionDiscriminator.prototype.encode = function (src, b, offset) {\n throw new Error('UnionDiscriminator is abstract');\n };\n return UnionDiscriminator;\n}());\nexports.UnionDiscriminator = UnionDiscriminator;\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\nvar UnionLayoutDiscriminator = /** @class */ (function (_super) {\n __extends(UnionLayoutDiscriminator, _super);\n function UnionLayoutDiscriminator(layout, property) {\n var _this = this;\n if (!((layout instanceof ExternalLayout)\n && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n _this = _super.call(this, property || layout.property || 'variant') || this;\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n _this.layout = layout;\n return _this;\n }\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n UnionLayoutDiscriminator.prototype.decode = function (b, offset) {\n return this.layout.decode(b, offset);\n };\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n UnionLayoutDiscriminator.prototype.encode = function (src, b, offset) {\n return this.layout.encode(src, b, offset);\n };\n return UnionLayoutDiscriminator;\n}(UnionDiscriminator));\nexports.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Union = /** @class */ (function (_super) {\n __extends(Union, _super);\n function Union(discr, defaultLayout, property) {\n var _this = this;\n var upv = ((discr instanceof UInt)\n || (discr instanceof UIntBE));\n var discriminator;\n if (upv) {\n discriminator = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n }\n else if ((discr instanceof ExternalLayout)\n && discr.isCount()) {\n discriminator = new UnionLayoutDiscriminator(discr);\n }\n else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator '\n + 'or an unsigned integer layout');\n }\n else {\n discriminator = discr;\n }\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n if (!((null === defaultLayout)\n || (defaultLayout instanceof Layout))) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n var span = -1;\n if (defaultLayout) {\n span = defaultLayout.span;\n if ((0 <= span) && upv) {\n span += discriminator.layout.span;\n }\n }\n _this = _super.call(this, span, property) || this;\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n _this.discriminator = discriminator;\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n _this.usesPrefixDiscriminator = upv;\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n _this.defaultLayout = defaultLayout;\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n _this.registry = {};\n /* Private variable used when invoking getSourceVariant */\n var boundGetSourceVariant = _this.defaultGetSourceVariant.bind(_this);\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n _this.getSourceVariant = function (src) {\n return boundGetSourceVariant(src);\n };\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n _this.configGetSourceVariant = function (gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n return _this;\n }\n /** @override */\n Union.prototype.getSpan = function (b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n var vlo = this.getVariant(b, offset);\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n return vlo.getSpan(b, offset);\n };\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisfied rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n Union.prototype.defaultGetSourceVariant = function (src) {\n if (Object.prototype.hasOwnProperty.call(src, this.discriminator.property)) {\n if (this.defaultLayout && this.defaultLayout.property\n && Object.prototype.hasOwnProperty.call(src, this.defaultLayout.property)) {\n return undefined;\n }\n var vlo = this.registry[src[this.discriminator.property]];\n if (vlo\n && ((!vlo.layout)\n || (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)))) {\n return vlo;\n }\n }\n else {\n for (var tag in this.registry) {\n var vlo = this.registry[tag];\n if (vlo.property && Object.prototype.hasOwnProperty.call(src, vlo.property)) {\n return vlo;\n }\n }\n }\n throw new Error('unable to infer src variant');\n };\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n Union.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var dest;\n var dlo = this.discriminator;\n var discr = dlo.decode(b, offset);\n var clo = this.registry[discr];\n if (undefined === clo) {\n var defaultLayout = this.defaultLayout;\n var contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n dest[defaultLayout.property] = defaultLayout.decode(b, offset + contentOffset);\n }\n else {\n dest = clo.decode(b, offset);\n }\n return dest;\n };\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n Union.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var vlo = this.getSourceVariant(src);\n if (undefined === vlo) {\n var dlo = this.discriminator;\n // this.defaultLayout is not undefined when vlo is undefined\n var clo = this.defaultLayout;\n var contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dlo.encode(src[dlo.property], b, offset);\n // clo.property is not undefined when vlo is undefined\n return contentOffset + clo.encode(src[clo.property], b, offset + contentOffset);\n }\n return vlo.encode(src, b, offset);\n };\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n Union.prototype.addVariant = function (variant, layout, property) {\n var rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n };\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Uint8Array)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Uint8Array}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n Union.prototype.getVariant = function (vb, offset) {\n var variant;\n if (vb instanceof Uint8Array) {\n if (undefined === offset) {\n offset = 0;\n }\n variant = this.discriminator.decode(vb, offset);\n }\n else {\n variant = vb;\n }\n return this.registry[variant];\n };\n return Union;\n}(Layout));\nexports.Union = Union;\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\nvar VariantLayout = /** @class */ (function (_super) {\n __extends(VariantLayout, _super);\n function VariantLayout(union, variant, layout, property) {\n var _this = this;\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n if ((!Number.isInteger(variant)) || (0 > variant)) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n if (('string' === typeof layout)\n && (undefined === property)) {\n property = layout;\n layout = null;\n }\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if ((null !== union.defaultLayout)\n && (0 <= layout.span)\n && (layout.span > union.defaultLayout.span)) {\n throw new Error('variant span exceeds span of containing union');\n }\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n var span = union.span;\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n if ((0 <= span) && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n _this = _super.call(this, span, property) || this;\n /** The {@link Union} to which this variant belongs. */\n _this.union = union;\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n _this.variant = variant;\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n _this.layout = layout || null;\n return _this;\n }\n /** @override */\n VariantLayout.prototype.getSpan = function (b, offset) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n var contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n var span = 0;\n if (this.layout) {\n span = this.layout.getSpan(b, offset + contentOffset);\n }\n return contentOffset + span;\n };\n /** @override */\n VariantLayout.prototype.decode = function (b, offset) {\n var dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n var contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n // VariantLayout property is never undefined\n var property = this.property;\n if (this.layout) {\n dest[property] = this.layout.decode(b, offset + contentOffset);\n }\n else if (property) {\n dest[property] = true;\n }\n else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n return dest;\n };\n /** @override */\n VariantLayout.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n // VariantLayout property is never undefined\n var property = this.property;\n if (this.layout\n && (!Object.prototype.hasOwnProperty.call(src, property))) {\n throw new TypeError('variant lacks property ' + property);\n }\n this.union.discriminator.encode(this.variant, b, offset);\n var span = contentOffset;\n if (this.layout) {\n this.layout.encode(src[property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n if ((0 <= this.union.span)\n && (span > this.union.span)) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n return span;\n };\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n VariantLayout.prototype.fromArray = function (values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n return undefined;\n };\n return VariantLayout;\n}(Layout));\nexports.VariantLayout = VariantLayout;\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n return v;\n}\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar BitStructure = /** @class */ (function (_super) {\n __extends(BitStructure, _super);\n function BitStructure(word, msb, property) {\n var _this = this;\n if (!((word instanceof UInt)\n || (word instanceof UIntBE))) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n if (('string' === typeof msb)\n && (undefined === property)) {\n property = msb;\n msb = false;\n }\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n _this = _super.call(this, word.span, property) || this;\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n _this.word = word;\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n _this.msb = !!msb;\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n _this.fields = [];\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n var value = 0;\n _this._packedSetValue = function (v) {\n value = fixBitwiseResult(v);\n return this;\n };\n _this._packedGetValue = function () {\n return value;\n };\n return _this;\n }\n /** @override */\n BitStructure.prototype.decode = function (b, offset) {\n var dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n var value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(value);\n }\n }\n return dest;\n };\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n BitStructure.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if (undefined !== fd.property) {\n var fv = src[fd.property];\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n return this.word.encode(this._packedGetValue(), b, offset);\n };\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n BitStructure.prototype.addField = function (bits, property) {\n var bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n };\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n BitStructure.prototype.addBoolean = function (property) {\n // This is my Boolean, not the Javascript one.\n // eslint-disable-next-line no-new-wrappers\n var bf = new Boolean(this, property);\n this.fields.push(bf);\n return bf;\n };\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n BitStructure.prototype.fieldFor = function (property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (var _i = 0, _a = this.fields; _i < _a.length; _i++) {\n var fd = _a[_i];\n if (fd.property === property) {\n return fd;\n }\n }\n return undefined;\n };\n return BitStructure;\n}(Layout));\nexports.BitStructure = BitStructure;\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\nvar BitField = /** @class */ (function () {\n function BitField(container, bits, property) {\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n if ((!Number.isInteger(bits)) || (0 >= bits)) {\n throw new TypeError('bits must be positive integer');\n }\n var totalBits = 8 * container.span;\n var usedBits = container.fields.reduce(function (sum, fd) { return sum + fd.bits; }, 0);\n if ((bits + usedBits) > totalBits) {\n throw new Error('bits too long for span remainder ('\n + (totalBits - usedBits) + ' of '\n + totalBits + ' remain)');\n }\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n this.container = container;\n /** The span of this value in bits. */\n this.bits = bits;\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n this.valueMask = (1 << bits) - 1;\n if (32 === bits) { // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n this.start = usedBits;\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n BitField.prototype.decode = function (b, offset) {\n var word = this.container._packedGetValue();\n var wordValue = fixBitwiseResult(word & this.wordMask);\n var value = wordValue >>> this.start;\n return value;\n };\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n BitField.prototype.encode = function (value) {\n if ((!Number.isInteger(value))\n || (value !== fixBitwiseResult(value & this.valueMask))) {\n throw new TypeError(nameWithProperty('BitField.encode', this)\n + ' value must be integer not exceeding ' + this.valueMask);\n }\n var word = this.container._packedGetValue();\n var wordValue = fixBitwiseResult(value << this.start);\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask)\n | wordValue);\n };\n return BitField;\n}());\nexports.BitField = BitField;\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n/* eslint-disable no-extend-native */\nvar Boolean = /** @class */ (function (_super) {\n __extends(Boolean, _super);\n function Boolean(container, property) {\n return _super.call(this, container, 1, property) || this;\n }\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n Boolean.prototype.decode = function (b, offset) {\n return !!BitField.prototype.decode.call(this, b, offset);\n };\n /** @override */\n Boolean.prototype.encode = function (value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n return BitField.prototype.encode.call(this, value);\n };\n return Boolean;\n}(BitField));\nexports.Boolean = Boolean;\n/* eslint-enable no-extend-native */\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Uint8Array.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Blob = /** @class */ (function (_super) {\n __extends(Blob, _super);\n function Blob(length, property) {\n var _this = this;\n if (!(((length instanceof ExternalLayout) && length.isCount())\n || (Number.isInteger(length) && (0 <= length)))) {\n throw new TypeError('length must be positive integer '\n + 'or an unsigned integer ExternalLayout');\n }\n var span = -1;\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n _this = _super.call(this, span, property) || this;\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n _this.length = length;\n return _this;\n }\n /** @override */\n Blob.prototype.getSpan = function (b, offset) {\n var span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return span;\n };\n /** @override */\n Blob.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return uint8ArrayToBuffer(b).slice(offset, offset + span);\n };\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n Blob.prototype.encode = function (src, b, offset) {\n var span = this.length;\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n if (!(src instanceof Uint8Array && span === src.length)) {\n throw new TypeError(nameWithProperty('Blob.encode', this)\n + ' requires (length ' + span + ') Uint8Array as src');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Uint8Array');\n }\n var srcBuffer = uint8ArrayToBuffer(src);\n uint8ArrayToBuffer(b).write(srcBuffer.toString('hex'), offset, span, 'hex');\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n return span;\n };\n return Blob;\n}(Layout));\nexports.Blob = Blob;\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar CString = /** @class */ (function (_super) {\n __extends(CString, _super);\n function CString(property) {\n return _super.call(this, -1, property) || this;\n }\n /** @override */\n CString.prototype.getSpan = function (b, offset) {\n checkUint8Array(b);\n if (undefined === offset) {\n offset = 0;\n }\n var idx = offset;\n while ((idx < b.length) && (0 !== b[idx])) {\n idx += 1;\n }\n return 1 + idx - offset;\n };\n /** @override */\n CString.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var span = this.getSpan(b, offset);\n return uint8ArrayToBuffer(b).slice(offset, offset + span - 1).toString('utf-8');\n };\n /** @override */\n CString.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n var srcb = buffer_1.Buffer.from(src, 'utf8');\n var span = srcb.length;\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n var buffer = uint8ArrayToBuffer(b);\n srcb.copy(buffer, offset);\n buffer[offset + span] = 0;\n return span + 1;\n };\n return CString;\n}(Layout));\nexports.CString = CString;\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar UTF8 = /** @class */ (function (_super) {\n __extends(UTF8, _super);\n function UTF8(maxSpan, property) {\n var _this = this;\n if (('string' === typeof maxSpan) && (undefined === property)) {\n property = maxSpan;\n maxSpan = undefined;\n }\n if (undefined === maxSpan) {\n maxSpan = -1;\n }\n else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n _this = _super.call(this, -1, property) || this;\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n _this.maxSpan = maxSpan;\n return _this;\n }\n /** @override */\n UTF8.prototype.getSpan = function (b, offset) {\n checkUint8Array(b);\n if (undefined === offset) {\n offset = 0;\n }\n return b.length - offset;\n };\n /** @override */\n UTF8.prototype.decode = function (b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n var span = this.getSpan(b, offset);\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n return uint8ArrayToBuffer(b).slice(offset, offset + span).toString('utf-8');\n };\n /** @override */\n UTF8.prototype.encode = function (src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n var srcb = buffer_1.Buffer.from(src, 'utf8');\n var span = srcb.length;\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(uint8ArrayToBuffer(b), offset);\n return span;\n };\n return UTF8;\n}(Layout));\nexports.UTF8 = UTF8;\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nvar Constant = /** @class */ (function (_super) {\n __extends(Constant, _super);\n function Constant(value, property) {\n var _this = _super.call(this, 0, property) || this;\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n _this.value = value;\n return _this;\n }\n /** @override */\n Constant.prototype.decode = function (b, offset) {\n return this.value;\n };\n /** @override */\n Constant.prototype.encode = function (src, b, offset) {\n /* Constants take no space */\n return 0;\n };\n return Constant;\n}(Layout));\nexports.Constant = Constant;\n/** Factory for {@link GreedyCount}. */\nexports.greedy = (function (elementSpan, property) { return new GreedyCount(elementSpan, property); });\n/** Factory for {@link OffsetLayout}. */\nexports.offset = (function (layout, offset, property) { return new OffsetLayout(layout, offset, property); });\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\nexports.u8 = (function (property) { return new UInt(1, property); });\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16 = (function (property) { return new UInt(2, property); });\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24 = (function (property) { return new UInt(3, property); });\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32 = (function (property) { return new UInt(4, property); });\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40 = (function (property) { return new UInt(5, property); });\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48 = (function (property) { return new UInt(6, property); });\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64 = (function (property) { return new NearUInt64(property); });\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16be = (function (property) { return new UIntBE(2, property); });\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24be = (function (property) { return new UIntBE(3, property); });\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32be = (function (property) { return new UIntBE(4, property); });\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40be = (function (property) { return new UIntBE(5, property); });\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48be = (function (property) { return new UIntBE(6, property); });\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64be = (function (property) { return new NearUInt64BE(property); });\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\nexports.s8 = (function (property) { return new Int(1, property); });\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\nexports.s16 = (function (property) { return new Int(2, property); });\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\nexports.s24 = (function (property) { return new Int(3, property); });\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\nexports.s32 = (function (property) { return new Int(4, property); });\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\nexports.s40 = (function (property) { return new Int(5, property); });\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\nexports.s48 = (function (property) { return new Int(6, property); });\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64 = (function (property) { return new NearInt64(property); });\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\nexports.s16be = (function (property) { return new IntBE(2, property); });\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\nexports.s24be = (function (property) { return new IntBE(3, property); });\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\nexports.s32be = (function (property) { return new IntBE(4, property); });\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\nexports.s40be = (function (property) { return new IntBE(5, property); });\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\nexports.s48be = (function (property) { return new IntBE(6, property); });\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64be = (function (property) { return new NearInt64BE(property); });\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\nexports.f32 = (function (property) { return new Float(property); });\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\nexports.f32be = (function (property) { return new FloatBE(property); });\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\nexports.f64 = (function (property) { return new Double(property); });\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\nexports.f64be = (function (property) { return new DoubleBE(property); });\n/** Factory for {@link Structure} values. */\nexports.struct = (function (fields, property, decodePrefixes) {\n return new Structure(fields, property, decodePrefixes);\n});\n/** Factory for {@link BitStructure} values. */\nexports.bits = (function (word, msb, property) { return new BitStructure(word, msb, property); });\n/** Factory for {@link Sequence} values. */\nexports.seq = (function (elementLayout, count, property) {\n return new Sequence(elementLayout, count, property);\n});\n/** Factory for {@link Union} values. */\nexports.union = (function (discr, defaultLayout, property) {\n return new Union(discr, defaultLayout, property);\n});\n/** Factory for {@link UnionLayoutDiscriminator} values. */\nexports.unionLayoutDiscriminator = (function (layout, property) { return new UnionLayoutDiscriminator(layout, property); });\n/** Factory for {@link Blob} values. */\nexports.blob = (function (length, property) { return new Blob(length, property); });\n/** Factory for {@link CString} values. */\nexports.cstr = (function (property) { return new CString(property); });\n/** Factory for {@link UTF8} values. */\nexports.utf8 = (function (maxSpan, property) { return new UTF8(maxSpan, property); });\n/** Factory for {@link Constant} values. */\nexports.constant = (function (value, property) { return new Constant(value, property); });\n//# sourceMappingURL=Layout.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _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}","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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import {Buffer} from 'buffer';\n\nexport const toBuffer = (arr: Buffer | Uint8Array | Array): Buffer => {\n if (Buffer.isBuffer(arr)) {\n return arr;\n } else if (arr instanceof Uint8Array) {\n return Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength);\n } else {\n return Buffer.from(arr);\n }\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\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)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"logger/5.5.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"bytes/5.5.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0x0\" + hex.substring(2);\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0\n };\n if (isBytesLike(signature)) {\n const bytes = arrayify(signature);\n if (bytes.length !== 65) {\n logger.throwArgumentError(\"invalid signature string; must be 65 bytes\", \"signature\", signature);\n }\n // Get the r, s and v\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n//# sourceMappingURL=sha2.js.map","export const version = \"sha2/5.5.0\";\n//# sourceMappingURL=_version.js.map","import {Buffer} from 'buffer';\nimport {serialize, deserialize, deserializeUnchecked} from 'borsh';\n\n// Class wrapping a plain object\nexport class Struct {\n constructor(properties: any) {\n Object.assign(this, properties);\n }\n\n encode(): Buffer {\n return Buffer.from(serialize(SOLANA_SCHEMA, this));\n }\n\n static decode(data: Buffer): any {\n return deserialize(SOLANA_SCHEMA, this, data);\n }\n\n static decodeUnchecked(data: Buffer): any {\n return deserializeUnchecked(SOLANA_SCHEMA, this, data);\n }\n}\n\n// Class representing a Rust-compatible enum, since enums are only strings or\n// numbers in pure JS\nexport class Enum extends Struct {\n enum: string = '';\n constructor(properties: any) {\n super(properties);\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map(key => {\n this.enum = key;\n });\n }\n}\n\nexport const SOLANA_SCHEMA: Map = new Map();\n","import BN from 'bn.js';\nimport bs58 from 'bs58';\nimport {Buffer} from 'buffer';\nimport nacl from 'tweetnacl';\nimport {sha256} from '@ethersproject/sha2';\n\nimport {Struct, SOLANA_SCHEMA} from './util/borsh-schema';\nimport {toBuffer} from './util/to-buffer';\n\n/**\n * Maximum length of derived pubkey seed\n */\nexport const MAX_SEED_LENGTH = 32;\n\n/**\n * Value to be converted into public key\n */\nexport type PublicKeyInitData =\n | number\n | string\n | Buffer\n | Uint8Array\n | Array\n | PublicKeyData;\n\n/**\n * JSON object representation of PublicKey class\n */\nexport type PublicKeyData = {\n /** @internal */\n _bn: BN;\n};\n\nfunction isPublicKeyData(value: PublicKeyInitData): value is PublicKeyData {\n return (value as PublicKeyData)._bn !== undefined;\n}\n\n/**\n * A public key\n */\nexport class PublicKey extends Struct {\n /** @internal */\n _bn: BN;\n\n /**\n * Create a new PublicKey object\n * @param value ed25519 public key as buffer or base-58 encoded string\n */\n constructor(value: PublicKeyInitData) {\n super({});\n if (isPublicKeyData(value)) {\n this._bn = value._bn;\n } else {\n if (typeof value === 'string') {\n // assume base 58 encoding by default\n const decoded = bs58.decode(value);\n if (decoded.length != 32) {\n throw new Error(`Invalid public key input`);\n }\n this._bn = new BN(decoded);\n } else {\n this._bn = new BN(value);\n }\n\n if (this._bn.byteLength() > 32) {\n throw new Error(`Invalid public key input`);\n }\n }\n }\n\n /**\n * Default public key value. (All zeros)\n */\n static default: PublicKey = new PublicKey('11111111111111111111111111111111');\n\n /**\n * Checks if two publicKeys are equal\n */\n equals(publicKey: PublicKey): boolean {\n return this._bn.eq(publicKey._bn);\n }\n\n /**\n * Return the base-58 representation of the public key\n */\n toBase58(): string {\n return bs58.encode(this.toBytes());\n }\n\n toJSON(): string {\n return this.toBase58();\n }\n\n /**\n * Return the byte array representation of the public key\n */\n toBytes(): Uint8Array {\n return this.toBuffer();\n }\n\n /**\n * Return the Buffer representation of the public key\n */\n toBuffer(): Buffer {\n const b = this._bn.toArrayLike(Buffer);\n if (b.length === 32) {\n return b;\n }\n\n const zeroPad = Buffer.alloc(32);\n b.copy(zeroPad, 32 - b.length);\n return zeroPad;\n }\n\n /**\n * Return the base-58 representation of the public key\n */\n toString(): string {\n return this.toBase58();\n }\n\n /**\n * Derive a public key from another key, a seed, and a program ID.\n * The program ID will also serve as the owner of the public key, giving\n * it permission to write data to the account.\n */\n /* eslint-disable require-await */\n static async createWithSeed(\n fromPublicKey: PublicKey,\n seed: string,\n programId: PublicKey,\n ): Promise {\n const buffer = Buffer.concat([\n fromPublicKey.toBuffer(),\n Buffer.from(seed),\n programId.toBuffer(),\n ]);\n const hash = sha256(new Uint8Array(buffer)).slice(2);\n return new PublicKey(Buffer.from(hash, 'hex'));\n }\n\n /**\n * Derive a program address from seeds and a program ID.\n */\n /* eslint-disable require-await */\n static async createProgramAddress(\n seeds: Array,\n programId: PublicKey,\n ): Promise {\n let buffer = Buffer.alloc(0);\n seeds.forEach(function (seed) {\n if (seed.length > MAX_SEED_LENGTH) {\n throw new TypeError(`Max seed length exceeded`);\n }\n buffer = Buffer.concat([buffer, toBuffer(seed)]);\n });\n buffer = Buffer.concat([\n buffer,\n programId.toBuffer(),\n Buffer.from('ProgramDerivedAddress'),\n ]);\n let hash = sha256(new Uint8Array(buffer)).slice(2);\n let publicKeyBytes = new BN(hash, 16).toArray(undefined, 32);\n if (is_on_curve(publicKeyBytes)) {\n throw new Error(`Invalid seeds, address must fall off the curve`);\n }\n return new PublicKey(publicKeyBytes);\n }\n\n /**\n * Find a valid program address\n *\n * Valid program addresses must fall off the ed25519 curve. This function\n * iterates a nonce until it finds one that when combined with the seeds\n * results in a valid program address.\n */\n static async findProgramAddress(\n seeds: Array,\n programId: PublicKey,\n ): Promise<[PublicKey, number]> {\n let nonce = 255;\n let address;\n while (nonce != 0) {\n try {\n const seedsWithNonce = seeds.concat(Buffer.from([nonce]));\n address = await this.createProgramAddress(seedsWithNonce, programId);\n } catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n nonce--;\n continue;\n }\n return [address, nonce];\n }\n throw new Error(`Unable to find a viable program address nonce`);\n }\n\n /**\n * Check that a pubkey is on the ed25519 curve.\n */\n static isOnCurve(pubkey: Uint8Array): boolean {\n return is_on_curve(pubkey) == 1;\n }\n}\n\nSOLANA_SCHEMA.set(PublicKey, {\n kind: 'struct',\n fields: [['_bn', 'u256']],\n});\n\n// @ts-ignore\nlet naclLowLevel = nacl.lowlevel;\n\n// Check that a pubkey is on the curve.\n// This function and its dependents were sourced from:\n// https://github.com/dchest/tweetnacl-js/blob/f1ec050ceae0861f34280e62498b1d3ed9c350c6/nacl.js#L792\nfunction is_on_curve(p: any) {\n var r = [\n naclLowLevel.gf(),\n naclLowLevel.gf(),\n naclLowLevel.gf(),\n naclLowLevel.gf(),\n ];\n\n var t = naclLowLevel.gf(),\n chk = naclLowLevel.gf(),\n num = naclLowLevel.gf(),\n den = naclLowLevel.gf(),\n den2 = naclLowLevel.gf(),\n den4 = naclLowLevel.gf(),\n den6 = naclLowLevel.gf();\n\n naclLowLevel.set25519(r[2], gf1);\n naclLowLevel.unpack25519(r[1], p);\n naclLowLevel.S(num, r[1]);\n naclLowLevel.M(den, num, naclLowLevel.D);\n naclLowLevel.Z(num, num, r[2]);\n naclLowLevel.A(den, r[2], den);\n\n naclLowLevel.S(den2, den);\n naclLowLevel.S(den4, den2);\n naclLowLevel.M(den6, den4, den2);\n naclLowLevel.M(t, den6, num);\n naclLowLevel.M(t, t, den);\n\n naclLowLevel.pow2523(t, t);\n naclLowLevel.M(t, t, num);\n naclLowLevel.M(t, t, den);\n naclLowLevel.M(t, t, den);\n naclLowLevel.M(r[0], t, den);\n\n naclLowLevel.S(chk, r[0]);\n naclLowLevel.M(chk, chk, den);\n if (neq25519(chk, num)) naclLowLevel.M(r[0], r[0], I);\n\n naclLowLevel.S(chk, r[0]);\n naclLowLevel.M(chk, chk, den);\n if (neq25519(chk, num)) return 0;\n return 1;\n}\nlet gf1 = naclLowLevel.gf([1]);\nlet I = naclLowLevel.gf([\n 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7,\n 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83,\n]);\nfunction neq25519(a: any, b: any) {\n var c = new Uint8Array(32),\n d = new Uint8Array(32);\n naclLowLevel.pack25519(c, a);\n naclLowLevel.pack25519(d, b);\n return naclLowLevel.crypto_verify_32(c, 0, d, 0);\n}\n","import nacl from 'tweetnacl';\nimport type {SignKeyPair as KeyPair} from 'tweetnacl';\nimport type {Buffer} from 'buffer';\n\nimport {toBuffer} from './util/to-buffer';\nimport {PublicKey} from './publickey';\n\n/**\n * An account key pair (public and secret keys).\n *\n * @deprecated since v1.10.0, please use {@link Keypair} instead.\n */\nexport class Account {\n /** @internal */\n _keypair: KeyPair;\n\n /**\n * Create a new Account object\n *\n * If the secretKey parameter is not provided a new key pair is randomly\n * created for the account\n *\n * @param secretKey Secret key for the account\n */\n constructor(secretKey?: Buffer | Uint8Array | Array) {\n if (secretKey) {\n this._keypair = nacl.sign.keyPair.fromSecretKey(toBuffer(secretKey));\n } else {\n this._keypair = nacl.sign.keyPair();\n }\n }\n\n /**\n * The public key for this account\n */\n get publicKey(): PublicKey {\n return new PublicKey(this._keypair.publicKey);\n }\n\n /**\n * The **unencrypted** secret key for this account\n */\n get secretKey(): Buffer {\n return toBuffer(this._keypair.secretKey);\n }\n}\n","import {PublicKey} from './publickey';\n\nexport const BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey(\n 'BPFLoader1111111111111111111111111111111111',\n);\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\n/**\n * Layout for a public key\n */\nexport const publicKey = (\n property: string = 'publicKey',\n): BufferLayout.Layout => {\n return BufferLayout.blob(32, property);\n};\n\n/**\n * Layout for a 64bit unsigned value\n */\nexport const uint64 = (property: string = 'uint64'): BufferLayout.Layout => {\n return BufferLayout.blob(8, property);\n};\n\n/**\n * Layout for a Rust String type\n */\nexport const rustString = (property: string = 'string') => {\n const rsl = BufferLayout.struct(\n [\n BufferLayout.u32('length'),\n BufferLayout.u32('lengthPadding'),\n BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), 'chars'),\n ],\n property,\n );\n const _decode = rsl.decode.bind(rsl);\n const _encode = rsl.encode.bind(rsl);\n\n rsl.decode = (buffer: any, offset: any) => {\n const data = _decode(buffer, offset);\n return data['chars'].toString('utf8');\n };\n\n rsl.encode = (str: any, buffer: any, offset: any) => {\n const data = {\n chars: Buffer.from(str, 'utf8'),\n };\n return _encode(data, buffer, offset);\n };\n\n (rsl as any).alloc = (str: any) => {\n return (\n BufferLayout.u32().span +\n BufferLayout.u32().span +\n Buffer.from(str, 'utf8').length\n );\n };\n\n return rsl;\n};\n\n/**\n * Layout for an Authorized object\n */\nexport const authorized = (property: string = 'authorized') => {\n return BufferLayout.struct(\n [publicKey('staker'), publicKey('withdrawer')],\n property,\n );\n};\n\n/**\n * Layout for a Lockup object\n */\nexport const lockup = (property: string = 'lockup') => {\n return BufferLayout.struct(\n [\n BufferLayout.ns64('unixTimestamp'),\n BufferLayout.ns64('epoch'),\n publicKey('custodian'),\n ],\n property,\n );\n};\n\n/**\n * Layout for a VoteInit object\n */\nexport const voteInit = (property: string = 'voteInit') => {\n return BufferLayout.struct(\n [\n publicKey('nodePubkey'),\n publicKey('authorizedVoter'),\n publicKey('authorizedWithdrawer'),\n BufferLayout.u8('commission'),\n ],\n property,\n );\n};\n\nexport function getAlloc(type: any, fields: any): number {\n let alloc = 0;\n type.layout.fields.forEach((item: any) => {\n if (item.span >= 0) {\n alloc += item.span;\n } else if (typeof item.alloc === 'function') {\n alloc += item.alloc(fields[item.property]);\n }\n });\n return alloc;\n}\n","export function decodeLength(bytes: Array): number {\n let len = 0;\n let size = 0;\n for (;;) {\n let elem = bytes.shift() as number;\n len |= (elem & 0x7f) << (size * 7);\n size += 1;\n if ((elem & 0x80) === 0) {\n break;\n }\n }\n return len;\n}\n\nexport function encodeLength(bytes: Array, len: number) {\n let rem_len = len;\n for (;;) {\n let elem = rem_len & 0x7f;\n rem_len >>= 7;\n if (rem_len == 0) {\n bytes.push(elem);\n break;\n } else {\n elem |= 0x80;\n bytes.push(elem);\n }\n }\n}\n","import bs58 from 'bs58';\nimport {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport {PublicKey} from './publickey';\nimport type {Blockhash} from './blockhash';\nimport * as Layout from './layout';\nimport {PACKET_DATA_SIZE} from './transaction';\nimport * as shortvec from './util/shortvec-encoding';\nimport {toBuffer} from './util/to-buffer';\n\n/**\n * The message header, identifying signed and read-only account\n */\nexport type MessageHeader = {\n /**\n * The number of signatures required for this message to be considered valid. The\n * signatures must match the first `numRequiredSignatures` of `accountKeys`.\n */\n numRequiredSignatures: number;\n /** The last `numReadonlySignedAccounts` of the signed keys are read-only accounts */\n numReadonlySignedAccounts: number;\n /** The last `numReadonlySignedAccounts` of the unsigned keys are read-only accounts */\n numReadonlyUnsignedAccounts: number;\n};\n\n/**\n * An instruction to execute by a program\n *\n * @property {number} programIdIndex\n * @property {number[]} accounts\n * @property {string} data\n */\nexport type CompiledInstruction = {\n /** Index into the transaction keys array indicating the program account that executes this instruction */\n programIdIndex: number;\n /** Ordered indices into the transaction keys array indicating which accounts to pass to the program */\n accounts: number[];\n /** The program input data encoded as base 58 */\n data: string;\n};\n\n/**\n * Message constructor arguments\n */\nexport type MessageArgs = {\n /** The message header, identifying signed and read-only `accountKeys` */\n header: MessageHeader;\n /** All the account keys used by this transaction */\n accountKeys: string[];\n /** The hash of a recent ledger block */\n recentBlockhash: Blockhash;\n /** Instructions that will be executed in sequence and committed in one atomic transaction if all succeed. */\n instructions: CompiledInstruction[];\n};\n\nconst PUBKEY_LENGTH = 32;\n\n/**\n * List of instructions to be processed atomically\n */\nexport class Message {\n header: MessageHeader;\n accountKeys: PublicKey[];\n recentBlockhash: Blockhash;\n instructions: CompiledInstruction[];\n\n private indexToProgramIds: Map = new Map<\n number,\n PublicKey\n >();\n\n constructor(args: MessageArgs) {\n this.header = args.header;\n this.accountKeys = args.accountKeys.map(account => new PublicKey(account));\n this.recentBlockhash = args.recentBlockhash;\n this.instructions = args.instructions;\n this.instructions.forEach(ix =>\n this.indexToProgramIds.set(\n ix.programIdIndex,\n this.accountKeys[ix.programIdIndex],\n ),\n );\n }\n\n isAccountSigner(index: number): boolean {\n return index < this.header.numRequiredSignatures;\n }\n\n isAccountWritable(index: number): boolean {\n return (\n index <\n this.header.numRequiredSignatures -\n this.header.numReadonlySignedAccounts ||\n (index >= this.header.numRequiredSignatures &&\n index <\n this.accountKeys.length - this.header.numReadonlyUnsignedAccounts)\n );\n }\n\n isProgramId(index: number): boolean {\n return this.indexToProgramIds.has(index);\n }\n\n programIds(): PublicKey[] {\n return [...this.indexToProgramIds.values()];\n }\n\n nonProgramIds(): PublicKey[] {\n return this.accountKeys.filter((_, index) => !this.isProgramId(index));\n }\n\n serialize(): Buffer {\n const numKeys = this.accountKeys.length;\n\n let keyCount: number[] = [];\n shortvec.encodeLength(keyCount, numKeys);\n\n const instructions = this.instructions.map(instruction => {\n const {accounts, programIdIndex} = instruction;\n const data = bs58.decode(instruction.data);\n\n let keyIndicesCount: number[] = [];\n shortvec.encodeLength(keyIndicesCount, accounts.length);\n\n let dataCount: number[] = [];\n shortvec.encodeLength(dataCount, data.length);\n\n return {\n programIdIndex,\n keyIndicesCount: Buffer.from(keyIndicesCount),\n keyIndices: Buffer.from(accounts),\n dataLength: Buffer.from(dataCount),\n data,\n };\n });\n\n let instructionCount: number[] = [];\n shortvec.encodeLength(instructionCount, instructions.length);\n let instructionBuffer = Buffer.alloc(PACKET_DATA_SIZE);\n Buffer.from(instructionCount).copy(instructionBuffer);\n let instructionBufferLength = instructionCount.length;\n\n instructions.forEach(instruction => {\n const instructionLayout = BufferLayout.struct([\n BufferLayout.u8('programIdIndex'),\n\n BufferLayout.blob(\n instruction.keyIndicesCount.length,\n 'keyIndicesCount',\n ),\n BufferLayout.seq(\n BufferLayout.u8('keyIndex'),\n instruction.keyIndices.length,\n 'keyIndices',\n ),\n BufferLayout.blob(instruction.dataLength.length, 'dataLength'),\n BufferLayout.seq(\n BufferLayout.u8('userdatum'),\n instruction.data.length,\n 'data',\n ),\n ]);\n const length = instructionLayout.encode(\n instruction,\n instructionBuffer,\n instructionBufferLength,\n );\n instructionBufferLength += length;\n });\n instructionBuffer = instructionBuffer.slice(0, instructionBufferLength);\n\n const signDataLayout = BufferLayout.struct([\n BufferLayout.blob(1, 'numRequiredSignatures'),\n BufferLayout.blob(1, 'numReadonlySignedAccounts'),\n BufferLayout.blob(1, 'numReadonlyUnsignedAccounts'),\n BufferLayout.blob(keyCount.length, 'keyCount'),\n BufferLayout.seq(Layout.publicKey('key'), numKeys, 'keys'),\n Layout.publicKey('recentBlockhash'),\n ]);\n\n const transaction = {\n numRequiredSignatures: Buffer.from([this.header.numRequiredSignatures]),\n numReadonlySignedAccounts: Buffer.from([\n this.header.numReadonlySignedAccounts,\n ]),\n numReadonlyUnsignedAccounts: Buffer.from([\n this.header.numReadonlyUnsignedAccounts,\n ]),\n keyCount: Buffer.from(keyCount),\n keys: this.accountKeys.map(key => toBuffer(key.toBytes())),\n recentBlockhash: bs58.decode(this.recentBlockhash),\n };\n\n let signData = Buffer.alloc(2048);\n const length = signDataLayout.encode(transaction, signData);\n instructionBuffer.copy(signData, length);\n return signData.slice(0, length + instructionBuffer.length);\n }\n\n /**\n * Decode a compiled message into a Message object.\n */\n static from(buffer: Buffer | Uint8Array | Array): Message {\n // Slice up wire data\n let byteArray = [...buffer];\n\n const numRequiredSignatures = byteArray.shift() as number;\n const numReadonlySignedAccounts = byteArray.shift() as number;\n const numReadonlyUnsignedAccounts = byteArray.shift() as number;\n\n const accountCount = shortvec.decodeLength(byteArray);\n let accountKeys = [];\n for (let i = 0; i < accountCount; i++) {\n const account = byteArray.slice(0, PUBKEY_LENGTH);\n byteArray = byteArray.slice(PUBKEY_LENGTH);\n accountKeys.push(bs58.encode(Buffer.from(account)));\n }\n\n const recentBlockhash = byteArray.slice(0, PUBKEY_LENGTH);\n byteArray = byteArray.slice(PUBKEY_LENGTH);\n\n const instructionCount = shortvec.decodeLength(byteArray);\n let instructions: CompiledInstruction[] = [];\n for (let i = 0; i < instructionCount; i++) {\n const programIdIndex = byteArray.shift() as number;\n const accountCount = shortvec.decodeLength(byteArray);\n const accounts = byteArray.slice(0, accountCount);\n byteArray = byteArray.slice(accountCount);\n const dataLength = shortvec.decodeLength(byteArray);\n const dataSlice = byteArray.slice(0, dataLength);\n const data = bs58.encode(Buffer.from(dataSlice));\n byteArray = byteArray.slice(dataLength);\n instructions.push({\n programIdIndex,\n accounts,\n data,\n });\n }\n\n const messageArgs = {\n header: {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts,\n },\n recentBlockhash: bs58.encode(Buffer.from(recentBlockhash)),\n accountKeys,\n instructions,\n };\n\n return new Message(messageArgs);\n }\n}\n","export default function (\n condition: unknown,\n message?: string,\n): asserts condition {\n if (!condition) {\n throw new Error(message || 'Assertion failed');\n }\n}\n","import nacl from 'tweetnacl';\nimport bs58 from 'bs58';\nimport {Buffer} from 'buffer';\n\nimport {Message} from './message';\nimport {PublicKey} from './publickey';\nimport * as shortvec from './util/shortvec-encoding';\nimport {toBuffer} from './util/to-buffer';\nimport invariant from './util/assert';\nimport type {Signer} from './keypair';\nimport type {Blockhash} from './blockhash';\nimport type {CompiledInstruction} from './message';\n\n/**\n * Transaction signature as base-58 encoded string\n */\nexport type TransactionSignature = string;\n\n/**\n * Default (empty) signature\n *\n * Signatures are 64 bytes in length\n */\nconst DEFAULT_SIGNATURE = Buffer.alloc(64).fill(0);\n\n/**\n * Maximum over-the-wire size of a Transaction\n *\n * 1280 is IPv6 minimum MTU\n * 40 bytes is the size of the IPv6 header\n * 8 bytes is the size of the fragment header\n */\nexport const PACKET_DATA_SIZE = 1280 - 40 - 8;\n\nconst SIGNATURE_LENGTH = 64;\n\n/**\n * Account metadata used to define instructions\n */\nexport type AccountMeta = {\n /** An account's public key */\n pubkey: PublicKey;\n /** True if an instruction requires a transaction signature matching `pubkey` */\n isSigner: boolean;\n /** True if the `pubkey` can be loaded as a read-write account. */\n isWritable: boolean;\n};\n\n/**\n * List of TransactionInstruction object fields that may be initialized at construction\n */\nexport type TransactionInstructionCtorFields = {\n keys: Array;\n programId: PublicKey;\n data?: Buffer;\n};\n\n/**\n * Configuration object for Transaction.serialize()\n */\nexport type SerializeConfig = {\n /** Require all transaction signatures be present (default: true) */\n requireAllSignatures?: boolean;\n /** Verify provided signatures (default: true) */\n verifySignatures?: boolean;\n};\n\n/**\n * Transaction Instruction class\n */\nexport class TransactionInstruction {\n /**\n * Public keys to include in this transaction\n * Boolean represents whether this pubkey needs to sign the transaction\n */\n keys: Array;\n\n /**\n * Program Id to execute\n */\n programId: PublicKey;\n\n /**\n * Program input\n */\n data: Buffer = Buffer.alloc(0);\n\n constructor(opts: TransactionInstructionCtorFields) {\n this.programId = opts.programId;\n this.keys = opts.keys;\n if (opts.data) {\n this.data = opts.data;\n }\n }\n}\n\n/**\n * Pair of signature and corresponding public key\n */\nexport type SignaturePubkeyPair = {\n signature: Buffer | null;\n publicKey: PublicKey;\n};\n\n/**\n * List of Transaction object fields that may be initialized at construction\n *\n */\nexport type TransactionCtorFields = {\n /** A recent blockhash */\n recentBlockhash?: Blockhash | null;\n /** Optional nonce information used for offline nonce'd transactions */\n nonceInfo?: NonceInformation | null;\n /** The transaction fee payer */\n feePayer?: PublicKey | null;\n /** One or more signatures */\n signatures?: Array;\n};\n\n/**\n * Nonce information to be used to build an offline Transaction.\n */\nexport type NonceInformation = {\n /** The current blockhash stored in the nonce */\n nonce: Blockhash;\n /** AdvanceNonceAccount Instruction */\n nonceInstruction: TransactionInstruction;\n};\n\n/**\n * Transaction class\n */\nexport class Transaction {\n /**\n * Signatures for the transaction. Typically created by invoking the\n * `sign()` method\n */\n signatures: Array = [];\n\n /**\n * The first (payer) Transaction signature\n */\n get signature(): Buffer | null {\n if (this.signatures.length > 0) {\n return this.signatures[0].signature;\n }\n return null;\n }\n\n /**\n * The transaction fee payer\n */\n feePayer?: PublicKey;\n\n /**\n * The instructions to atomically execute\n */\n instructions: Array = [];\n\n /**\n * A recent transaction id. Must be populated by the caller\n */\n recentBlockhash?: Blockhash;\n\n /**\n * Optional Nonce information. If populated, transaction will use a durable\n * Nonce hash instead of a recentBlockhash. Must be populated by the caller\n */\n nonceInfo?: NonceInformation;\n\n /**\n * Construct an empty Transaction\n */\n constructor(opts?: TransactionCtorFields) {\n opts && Object.assign(this, opts);\n }\n\n /**\n * Add one or more instructions to this Transaction\n */\n add(\n ...items: Array<\n Transaction | TransactionInstruction | TransactionInstructionCtorFields\n >\n ): Transaction {\n if (items.length === 0) {\n throw new Error('No instructions');\n }\n\n items.forEach((item: any) => {\n if ('instructions' in item) {\n this.instructions = this.instructions.concat(item.instructions);\n } else if ('data' in item && 'programId' in item && 'keys' in item) {\n this.instructions.push(item);\n } else {\n this.instructions.push(new TransactionInstruction(item));\n }\n });\n return this;\n }\n\n /**\n * Compile transaction data\n */\n compileMessage(): Message {\n const {nonceInfo} = this;\n if (nonceInfo && this.instructions[0] != nonceInfo.nonceInstruction) {\n this.recentBlockhash = nonceInfo.nonce;\n this.instructions.unshift(nonceInfo.nonceInstruction);\n }\n const {recentBlockhash} = this;\n if (!recentBlockhash) {\n throw new Error('Transaction recentBlockhash required');\n }\n\n if (this.instructions.length < 1) {\n console.warn('No instructions provided');\n }\n\n let feePayer: PublicKey;\n if (this.feePayer) {\n feePayer = this.feePayer;\n } else if (this.signatures.length > 0 && this.signatures[0].publicKey) {\n // Use implicit fee payer\n feePayer = this.signatures[0].publicKey;\n } else {\n throw new Error('Transaction fee payer required');\n }\n\n for (let i = 0; i < this.instructions.length; i++) {\n if (this.instructions[i].programId === undefined) {\n throw new Error(\n `Transaction instruction index ${i} has undefined program id`,\n );\n }\n }\n\n const programIds: string[] = [];\n const accountMetas: AccountMeta[] = [];\n this.instructions.forEach(instruction => {\n instruction.keys.forEach(accountMeta => {\n accountMetas.push({...accountMeta});\n });\n\n const programId = instruction.programId.toString();\n if (!programIds.includes(programId)) {\n programIds.push(programId);\n }\n });\n\n // Append programID account metas\n programIds.forEach(programId => {\n accountMetas.push({\n pubkey: new PublicKey(programId),\n isSigner: false,\n isWritable: false,\n });\n });\n\n // Sort. Prioritizing first by signer, then by writable\n accountMetas.sort(function (x, y) {\n const pubkeySorting = x.pubkey\n .toBase58()\n .localeCompare(y.pubkey.toBase58());\n const checkSigner = x.isSigner === y.isSigner ? 0 : x.isSigner ? -1 : 1;\n const checkWritable =\n x.isWritable === y.isWritable ? pubkeySorting : x.isWritable ? -1 : 1;\n return checkSigner || checkWritable;\n });\n\n // Cull duplicate account metas\n const uniqueMetas: AccountMeta[] = [];\n accountMetas.forEach(accountMeta => {\n const pubkeyString = accountMeta.pubkey.toString();\n const uniqueIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.toString() === pubkeyString;\n });\n if (uniqueIndex > -1) {\n uniqueMetas[uniqueIndex].isWritable =\n uniqueMetas[uniqueIndex].isWritable || accountMeta.isWritable;\n } else {\n uniqueMetas.push(accountMeta);\n }\n });\n\n // Move fee payer to the front\n const feePayerIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.equals(feePayer);\n });\n if (feePayerIndex > -1) {\n const [payerMeta] = uniqueMetas.splice(feePayerIndex, 1);\n payerMeta.isSigner = true;\n payerMeta.isWritable = true;\n uniqueMetas.unshift(payerMeta);\n } else {\n uniqueMetas.unshift({\n pubkey: feePayer,\n isSigner: true,\n isWritable: true,\n });\n }\n\n // Disallow unknown signers\n for (const signature of this.signatures) {\n const uniqueIndex = uniqueMetas.findIndex(x => {\n return x.pubkey.equals(signature.publicKey);\n });\n if (uniqueIndex > -1) {\n if (!uniqueMetas[uniqueIndex].isSigner) {\n uniqueMetas[uniqueIndex].isSigner = true;\n console.warn(\n 'Transaction references a signature that is unnecessary, ' +\n 'only the fee payer and instruction signer accounts should sign a transaction. ' +\n 'This behavior is deprecated and will throw an error in the next major version release.',\n );\n }\n } else {\n throw new Error(`unknown signer: ${signature.publicKey.toString()}`);\n }\n }\n\n let numRequiredSignatures = 0;\n let numReadonlySignedAccounts = 0;\n let numReadonlyUnsignedAccounts = 0;\n\n // Split out signing from non-signing keys and count header values\n const signedKeys: string[] = [];\n const unsignedKeys: string[] = [];\n uniqueMetas.forEach(({pubkey, isSigner, isWritable}) => {\n if (isSigner) {\n signedKeys.push(pubkey.toString());\n numRequiredSignatures += 1;\n if (!isWritable) {\n numReadonlySignedAccounts += 1;\n }\n } else {\n unsignedKeys.push(pubkey.toString());\n if (!isWritable) {\n numReadonlyUnsignedAccounts += 1;\n }\n }\n });\n\n const accountKeys = signedKeys.concat(unsignedKeys);\n const instructions: CompiledInstruction[] = this.instructions.map(\n instruction => {\n const {data, programId} = instruction;\n return {\n programIdIndex: accountKeys.indexOf(programId.toString()),\n accounts: instruction.keys.map(meta =>\n accountKeys.indexOf(meta.pubkey.toString()),\n ),\n data: bs58.encode(data),\n };\n },\n );\n\n instructions.forEach(instruction => {\n invariant(instruction.programIdIndex >= 0);\n instruction.accounts.forEach(keyIndex => invariant(keyIndex >= 0));\n });\n\n return new Message({\n header: {\n numRequiredSignatures,\n numReadonlySignedAccounts,\n numReadonlyUnsignedAccounts,\n },\n accountKeys,\n recentBlockhash,\n instructions,\n });\n }\n\n /**\n * @internal\n */\n _compile(): Message {\n const message = this.compileMessage();\n const signedKeys = message.accountKeys.slice(\n 0,\n message.header.numRequiredSignatures,\n );\n\n if (this.signatures.length === signedKeys.length) {\n const valid = this.signatures.every((pair, index) => {\n return signedKeys[index].equals(pair.publicKey);\n });\n\n if (valid) return message;\n }\n\n this.signatures = signedKeys.map(publicKey => ({\n signature: null,\n publicKey,\n }));\n\n return message;\n }\n\n /**\n * Get a buffer of the Transaction data that need to be covered by signatures\n */\n serializeMessage(): Buffer {\n return this._compile().serialize();\n }\n\n /**\n * Specify the public keys which will be used to sign the Transaction.\n * The first signer will be used as the transaction fee payer account.\n *\n * Signatures can be added with either `partialSign` or `addSignature`\n *\n * @deprecated Deprecated since v0.84.0. Only the fee payer needs to be\n * specified and it can be set in the Transaction constructor or with the\n * `feePayer` property.\n */\n setSigners(...signers: Array) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n const seen = new Set();\n this.signatures = signers\n .filter(publicKey => {\n const key = publicKey.toString();\n if (seen.has(key)) {\n return false;\n } else {\n seen.add(key);\n return true;\n }\n })\n .map(publicKey => ({signature: null, publicKey}));\n }\n\n /**\n * Sign the Transaction with the specified signers. Multiple signatures may\n * be applied to a Transaction. The first signature is considered \"primary\"\n * and is used identify and confirm transactions.\n *\n * If the Transaction `feePayer` is not set, the first signer will be used\n * as the transaction fee payer account.\n *\n * Transaction fields should not be modified after the first call to `sign`,\n * as doing so may invalidate the signature and cause the Transaction to be\n * rejected.\n *\n * The Transaction must be assigned a valid `recentBlockhash` before invoking this method\n */\n sign(...signers: Array) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n // Dedupe signers\n const seen = new Set();\n const uniqueSigners = [];\n for (const signer of signers) {\n const key = signer.publicKey.toString();\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n\n this.signatures = uniqueSigners.map(signer => ({\n signature: null,\n publicKey: signer.publicKey,\n }));\n\n const message = this._compile();\n this._partialSign(message, ...uniqueSigners);\n this._verifySignatures(message.serialize(), true);\n }\n\n /**\n * Partially sign a transaction with the specified accounts. All accounts must\n * correspond to either the fee payer or a signer account in the transaction\n * instructions.\n *\n * All the caveats from the `sign` method apply to `partialSign`\n */\n partialSign(...signers: Array) {\n if (signers.length === 0) {\n throw new Error('No signers');\n }\n\n // Dedupe signers\n const seen = new Set();\n const uniqueSigners = [];\n for (const signer of signers) {\n const key = signer.publicKey.toString();\n if (seen.has(key)) {\n continue;\n } else {\n seen.add(key);\n uniqueSigners.push(signer);\n }\n }\n\n const message = this._compile();\n this._partialSign(message, ...uniqueSigners);\n }\n\n /**\n * @internal\n */\n _partialSign(message: Message, ...signers: Array) {\n const signData = message.serialize();\n signers.forEach(signer => {\n const signature = nacl.sign.detached(signData, signer.secretKey);\n this._addSignature(signer.publicKey, toBuffer(signature));\n });\n }\n\n /**\n * Add an externally created signature to a transaction. The public key\n * must correspond to either the fee payer or a signer account in the transaction\n * instructions.\n */\n addSignature(pubkey: PublicKey, signature: Buffer) {\n this._compile(); // Ensure signatures array is populated\n this._addSignature(pubkey, signature);\n }\n\n /**\n * @internal\n */\n _addSignature(pubkey: PublicKey, signature: Buffer) {\n invariant(signature.length === 64);\n\n const index = this.signatures.findIndex(sigpair =>\n pubkey.equals(sigpair.publicKey),\n );\n if (index < 0) {\n throw new Error(`unknown signer: ${pubkey.toString()}`);\n }\n\n this.signatures[index].signature = Buffer.from(signature);\n }\n\n /**\n * Verify signatures of a complete, signed Transaction\n */\n verifySignatures(): boolean {\n return this._verifySignatures(this.serializeMessage(), true);\n }\n\n /**\n * @internal\n */\n _verifySignatures(signData: Buffer, requireAllSignatures: boolean): boolean {\n for (const {signature, publicKey} of this.signatures) {\n if (signature === null) {\n if (requireAllSignatures) {\n return false;\n }\n } else {\n if (\n !nacl.sign.detached.verify(signData, signature, publicKey.toBuffer())\n ) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * Serialize the Transaction in the wire format.\n */\n serialize(config?: SerializeConfig): Buffer {\n const {requireAllSignatures, verifySignatures} = Object.assign(\n {requireAllSignatures: true, verifySignatures: true},\n config,\n );\n\n const signData = this.serializeMessage();\n if (\n verifySignatures &&\n !this._verifySignatures(signData, requireAllSignatures)\n ) {\n throw new Error('Signature verification failed');\n }\n\n return this._serialize(signData);\n }\n\n /**\n * @internal\n */\n _serialize(signData: Buffer): Buffer {\n const {signatures} = this;\n const signatureCount: number[] = [];\n shortvec.encodeLength(signatureCount, signatures.length);\n const transactionLength =\n signatureCount.length + signatures.length * 64 + signData.length;\n const wireTransaction = Buffer.alloc(transactionLength);\n invariant(signatures.length < 256);\n Buffer.from(signatureCount).copy(wireTransaction, 0);\n signatures.forEach(({signature}, index) => {\n if (signature !== null) {\n invariant(signature.length === 64, `signature has invalid length`);\n Buffer.from(signature).copy(\n wireTransaction,\n signatureCount.length + index * 64,\n );\n }\n });\n signData.copy(\n wireTransaction,\n signatureCount.length + signatures.length * 64,\n );\n invariant(\n wireTransaction.length <= PACKET_DATA_SIZE,\n `Transaction too large: ${wireTransaction.length} > ${PACKET_DATA_SIZE}`,\n );\n return wireTransaction;\n }\n\n /**\n * Deprecated method\n * @internal\n */\n get keys(): Array {\n invariant(this.instructions.length === 1);\n return this.instructions[0].keys.map(keyObj => keyObj.pubkey);\n }\n\n /**\n * Deprecated method\n * @internal\n */\n get programId(): PublicKey {\n invariant(this.instructions.length === 1);\n return this.instructions[0].programId;\n }\n\n /**\n * Deprecated method\n * @internal\n */\n get data(): Buffer {\n invariant(this.instructions.length === 1);\n return this.instructions[0].data;\n }\n\n /**\n * Parse a wire transaction into a Transaction object.\n */\n static from(buffer: Buffer | Uint8Array | Array): Transaction {\n // Slice up wire data\n let byteArray = [...buffer];\n\n const signatureCount = shortvec.decodeLength(byteArray);\n let signatures = [];\n for (let i = 0; i < signatureCount; i++) {\n const signature = byteArray.slice(0, SIGNATURE_LENGTH);\n byteArray = byteArray.slice(SIGNATURE_LENGTH);\n signatures.push(bs58.encode(Buffer.from(signature)));\n }\n\n return Transaction.populate(Message.from(byteArray), signatures);\n }\n\n /**\n * Populate Transaction object from message and signatures\n */\n static populate(\n message: Message,\n signatures: Array = [],\n ): Transaction {\n const transaction = new Transaction();\n transaction.recentBlockhash = message.recentBlockhash;\n if (message.header.numRequiredSignatures > 0) {\n transaction.feePayer = message.accountKeys[0];\n }\n signatures.forEach((signature, index) => {\n const sigPubkeyPair = {\n signature:\n signature == bs58.encode(DEFAULT_SIGNATURE)\n ? null\n : bs58.decode(signature),\n publicKey: message.accountKeys[index],\n };\n transaction.signatures.push(sigPubkeyPair);\n });\n\n message.instructions.forEach(instruction => {\n const keys = instruction.accounts.map(account => {\n const pubkey = message.accountKeys[account];\n return {\n pubkey,\n isSigner:\n transaction.signatures.some(\n keyObj => keyObj.publicKey.toString() === pubkey.toString(),\n ) || message.isAccountSigner(account),\n isWritable: message.isAccountWritable(account),\n };\n });\n\n transaction.instructions.push(\n new TransactionInstruction({\n keys,\n programId: message.accountKeys[instruction.programIdIndex],\n data: bs58.decode(instruction.data),\n }),\n );\n });\n\n return transaction;\n }\n}\n","import {PublicKey} from './publickey';\n\nexport const SYSVAR_CLOCK_PUBKEY = new PublicKey(\n 'SysvarC1ock11111111111111111111111111111111',\n);\n\nexport const SYSVAR_EPOCH_SCHEDULE_PUBKEY = new PublicKey(\n 'SysvarEpochSchedu1e111111111111111111111111',\n);\n\nexport const SYSVAR_INSTRUCTIONS_PUBKEY = new PublicKey(\n 'Sysvar1nstructions1111111111111111111111111',\n);\n\nexport const SYSVAR_RECENT_BLOCKHASHES_PUBKEY = new PublicKey(\n 'SysvarRecentB1ockHashes11111111111111111111',\n);\n\nexport const SYSVAR_RENT_PUBKEY = new PublicKey(\n 'SysvarRent111111111111111111111111111111111',\n);\n\nexport const SYSVAR_REWARDS_PUBKEY = new PublicKey(\n 'SysvarRewards111111111111111111111111111111',\n);\n\nexport const SYSVAR_SLOT_HASHES_PUBKEY = new PublicKey(\n 'SysvarS1otHashes111111111111111111111111111',\n);\n\nexport const SYSVAR_SLOT_HISTORY_PUBKEY = new PublicKey(\n 'SysvarS1otHistory11111111111111111111111111',\n);\n\nexport const SYSVAR_STAKE_HISTORY_PUBKEY = new PublicKey(\n 'SysvarStakeHistory1111111111111111111111111',\n);\n","import {Connection} from '../connection';\nimport {Transaction} from '../transaction';\nimport type {ConfirmOptions} from '../connection';\nimport type {Signer} from '../keypair';\nimport type {TransactionSignature} from '../transaction';\n\n/**\n * Sign, send and confirm a transaction.\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Transaction} transaction\n * @param {Array} signers\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\nexport async function sendAndConfirmTransaction(\n connection: Connection,\n transaction: Transaction,\n signers: Array,\n options?: ConfirmOptions,\n): Promise {\n const sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n maxRetries: options.maxRetries,\n };\n\n const signature = await connection.sendTransaction(\n transaction,\n signers,\n sendOptions,\n );\n\n const status = (\n await connection.confirmTransaction(\n signature,\n options && options.commitment,\n )\n ).value;\n\n if (status.err) {\n throw new Error(\n `Transaction ${signature} failed (${JSON.stringify(status)})`,\n );\n }\n\n return signature;\n}\n","// zzz\nexport function sleep(ms: number): Promise {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport * as Layout from './layout';\n\n/**\n * @internal\n */\nexport type InstructionType = {\n /** The Instruction index (from solana upstream program) */\n index: number;\n /** The BufferLayout to use to build data */\n layout: BufferLayout.Layout;\n};\n\n/**\n * Populate a buffer of instruction data using an InstructionType\n * @internal\n */\nexport function encodeData(type: InstructionType, fields?: any): Buffer {\n const allocLength =\n type.layout.span >= 0 ? type.layout.span : Layout.getAlloc(type, fields);\n const data = Buffer.alloc(allocLength);\n const layoutFields = Object.assign({instruction: type.index}, fields);\n type.layout.encode(layoutFields, data);\n return data;\n}\n\n/**\n * Decode instruction data buffer using an InstructionType\n * @internal\n */\nexport function decodeData(type: InstructionType, buffer: Buffer): any {\n let data;\n try {\n data = type.layout.decode(buffer);\n } catch (err) {\n throw new Error('invalid instruction; ' + err);\n }\n\n if (data.instruction !== type.index) {\n throw new Error(\n `invalid instruction; instruction index mismatch ${data.instruction} != ${type.index}`,\n );\n }\n\n return data;\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\n/**\n * https://github.com/solana-labs/solana/blob/90bedd7e067b5b8f3ddbb45da00a4e9cabb22c62/sdk/src/fee_calculator.rs#L7-L11\n *\n * @internal\n */\nexport const FeeCalculatorLayout = BufferLayout.nu64('lamportsPerSignature');\n\n/**\n * Calculator for transaction fees.\n */\nexport interface FeeCalculator {\n /** Cost in lamports to validate a signature. */\n lamportsPerSignature: number;\n}\n","import * as BufferLayout from '@solana/buffer-layout';\nimport {Buffer} from 'buffer';\n\nimport type {Blockhash} from './blockhash';\nimport * as Layout from './layout';\nimport {PublicKey} from './publickey';\nimport type {FeeCalculator} from './fee-calculator';\nimport {FeeCalculatorLayout} from './fee-calculator';\nimport {toBuffer} from './util/to-buffer';\n\n/**\n * See https://github.com/solana-labs/solana/blob/0ea2843ec9cdc517572b8e62c959f41b55cf4453/sdk/src/nonce_state.rs#L29-L32\n *\n * @internal\n */\nconst NonceAccountLayout = BufferLayout.struct([\n BufferLayout.u32('version'),\n BufferLayout.u32('state'),\n Layout.publicKey('authorizedPubkey'),\n Layout.publicKey('nonce'),\n BufferLayout.struct([FeeCalculatorLayout], 'feeCalculator'),\n]);\n\nexport const NONCE_ACCOUNT_LENGTH = NonceAccountLayout.span;\n\ntype NonceAccountArgs = {\n authorizedPubkey: PublicKey;\n nonce: Blockhash;\n feeCalculator: FeeCalculator;\n};\n\n/**\n * NonceAccount class\n */\nexport class NonceAccount {\n authorizedPubkey: PublicKey;\n nonce: Blockhash;\n feeCalculator: FeeCalculator;\n\n /**\n * @internal\n */\n constructor(args: NonceAccountArgs) {\n this.authorizedPubkey = args.authorizedPubkey;\n this.nonce = args.nonce;\n this.feeCalculator = args.feeCalculator;\n }\n\n /**\n * Deserialize NonceAccount from the account data.\n *\n * @param buffer account data\n * @return NonceAccount\n */\n static fromAccountData(\n buffer: Buffer | Uint8Array | Array,\n ): NonceAccount {\n const nonceAccount = NonceAccountLayout.decode(toBuffer(buffer), 0);\n return new NonceAccount({\n authorizedPubkey: new PublicKey(nonceAccount.authorizedPubkey),\n nonce: new PublicKey(nonceAccount.nonce).toString(),\n feeCalculator: nonceAccount.feeCalculator,\n });\n }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {encodeData, decodeData, InstructionType} from './instruction';\nimport * as Layout from './layout';\nimport {NONCE_ACCOUNT_LENGTH} from './nonce-account';\nimport {PublicKey} from './publickey';\nimport {SYSVAR_RECENT_BLOCKHASHES_PUBKEY, SYSVAR_RENT_PUBKEY} from './sysvar';\nimport {Transaction, TransactionInstruction} from './transaction';\nimport {toBuffer} from './util/to-buffer';\n\n/**\n * Create account system transaction params\n */\nexport type CreateAccountParams = {\n /** The account that will transfer lamports to the created account */\n fromPubkey: PublicKey;\n /** Public key of the created account */\n newAccountPubkey: PublicKey;\n /** Amount of lamports to transfer to the created account */\n lamports: number;\n /** Amount of space in bytes to allocate to the created account */\n space: number;\n /** Public key of the program to assign as the owner of the created account */\n programId: PublicKey;\n};\n\n/**\n * Transfer system transaction params\n */\nexport type TransferParams = {\n /** Account that will transfer lamports */\n fromPubkey: PublicKey;\n /** Account that will receive transferred lamports */\n toPubkey: PublicKey;\n /** Amount of lamports to transfer */\n lamports: number;\n};\n\n/**\n * Assign system transaction params\n */\nexport type AssignParams = {\n /** Public key of the account which will be assigned a new owner */\n accountPubkey: PublicKey;\n /** Public key of the program to assign as the owner */\n programId: PublicKey;\n};\n\n/**\n * Create account with seed system transaction params\n */\nexport type CreateAccountWithSeedParams = {\n /** The account that will transfer lamports to the created account */\n fromPubkey: PublicKey;\n /** Public key of the created account. Must be pre-calculated with PublicKey.createWithSeed() */\n newAccountPubkey: PublicKey;\n /** Base public key to use to derive the address of the created account. Must be the same as the base key used to create `newAccountPubkey` */\n basePubkey: PublicKey;\n /** Seed to use to derive the address of the created account. Must be the same as the seed used to create `newAccountPubkey` */\n seed: string;\n /** Amount of lamports to transfer to the created account */\n lamports: number;\n /** Amount of space in bytes to allocate to the created account */\n space: number;\n /** Public key of the program to assign as the owner of the created account */\n programId: PublicKey;\n};\n\n/**\n * Create nonce account system transaction params\n */\nexport type CreateNonceAccountParams = {\n /** The account that will transfer lamports to the created nonce account */\n fromPubkey: PublicKey;\n /** Public key of the created nonce account */\n noncePubkey: PublicKey;\n /** Public key to set as authority of the created nonce account */\n authorizedPubkey: PublicKey;\n /** Amount of lamports to transfer to the created nonce account */\n lamports: number;\n};\n\n/**\n * Create nonce account with seed system transaction params\n */\nexport type CreateNonceAccountWithSeedParams = {\n /** The account that will transfer lamports to the created nonce account */\n fromPubkey: PublicKey;\n /** Public key of the created nonce account */\n noncePubkey: PublicKey;\n /** Public key to set as authority of the created nonce account */\n authorizedPubkey: PublicKey;\n /** Amount of lamports to transfer to the created nonce account */\n lamports: number;\n /** Base public key to use to derive the address of the nonce account */\n basePubkey: PublicKey;\n /** Seed to use to derive the address of the nonce account */\n seed: string;\n};\n\n/**\n * Initialize nonce account system instruction params\n */\nexport type InitializeNonceParams = {\n /** Nonce account which will be initialized */\n noncePubkey: PublicKey;\n /** Public key to set as authority of the initialized nonce account */\n authorizedPubkey: PublicKey;\n};\n\n/**\n * Advance nonce account system instruction params\n */\nexport type AdvanceNonceParams = {\n /** Nonce account */\n noncePubkey: PublicKey;\n /** Public key of the nonce authority */\n authorizedPubkey: PublicKey;\n};\n\n/**\n * Withdraw nonce account system transaction params\n */\nexport type WithdrawNonceParams = {\n /** Nonce account */\n noncePubkey: PublicKey;\n /** Public key of the nonce authority */\n authorizedPubkey: PublicKey;\n /** Public key of the account which will receive the withdrawn nonce account balance */\n toPubkey: PublicKey;\n /** Amount of lamports to withdraw from the nonce account */\n lamports: number;\n};\n\n/**\n * Authorize nonce account system transaction params\n */\nexport type AuthorizeNonceParams = {\n /** Nonce account */\n noncePubkey: PublicKey;\n /** Public key of the current nonce authority */\n authorizedPubkey: PublicKey;\n /** Public key to set as the new nonce authority */\n newAuthorizedPubkey: PublicKey;\n};\n\n/**\n * Allocate account system transaction params\n */\nexport type AllocateParams = {\n /** Account to allocate */\n accountPubkey: PublicKey;\n /** Amount of space in bytes to allocate */\n space: number;\n};\n\n/**\n * Allocate account with seed system transaction params\n */\nexport type AllocateWithSeedParams = {\n /** Account to allocate */\n accountPubkey: PublicKey;\n /** Base public key to use to derive the address of the allocated account */\n basePubkey: PublicKey;\n /** Seed to use to derive the address of the allocated account */\n seed: string;\n /** Amount of space in bytes to allocate */\n space: number;\n /** Public key of the program to assign as the owner of the allocated account */\n programId: PublicKey;\n};\n\n/**\n * Assign account with seed system transaction params\n */\nexport type AssignWithSeedParams = {\n /** Public key of the account which will be assigned a new owner */\n accountPubkey: PublicKey;\n /** Base public key to use to derive the address of the assigned account */\n basePubkey: PublicKey;\n /** Seed to use to derive the address of the assigned account */\n seed: string;\n /** Public key of the program to assign as the owner */\n programId: PublicKey;\n};\n\n/**\n * Transfer with seed system transaction params\n */\nexport type TransferWithSeedParams = {\n /** Account that will transfer lamports */\n fromPubkey: PublicKey;\n /** Base public key to use to derive the funding account address */\n basePubkey: PublicKey;\n /** Account that will receive transferred lamports */\n toPubkey: PublicKey;\n /** Amount of lamports to transfer */\n lamports: number;\n /** Seed to use to derive the funding account address */\n seed: string;\n /** Program id to use to derive the funding account address */\n programId: PublicKey;\n};\n\n/**\n * System Instruction class\n */\nexport class SystemInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a system instruction and retrieve the instruction type.\n */\n static decodeInstructionType(\n instruction: TransactionInstruction,\n ): SystemInstructionType {\n this.checkProgramId(instruction.programId);\n\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n let type: SystemInstructionType | undefined;\n for (const [ixType, layout] of Object.entries(SYSTEM_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType as SystemInstructionType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a SystemInstruction');\n }\n\n return type;\n }\n\n /**\n * Decode a create account system instruction and retrieve the instruction params.\n */\n static decodeCreateAccount(\n instruction: TransactionInstruction,\n ): CreateAccountParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n const {lamports, space, programId} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.Create,\n instruction.data,\n );\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n lamports,\n space,\n programId: new PublicKey(programId),\n };\n }\n\n /**\n * Decode a transfer system instruction and retrieve the instruction params.\n */\n static decodeTransfer(instruction: TransactionInstruction): TransferParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n const {lamports} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.Transfer,\n instruction.data,\n );\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n lamports,\n };\n }\n\n /**\n * Decode a transfer with seed system instruction and retrieve the instruction params.\n */\n static decodeTransferWithSeed(\n instruction: TransactionInstruction,\n ): TransferWithSeedParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n const {lamports, seed, programId} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed,\n instruction.data,\n );\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n basePubkey: instruction.keys[1].pubkey,\n toPubkey: instruction.keys[2].pubkey,\n lamports,\n seed,\n programId: new PublicKey(programId),\n };\n }\n\n /**\n * Decode an allocate system instruction and retrieve the instruction params.\n */\n static decodeAllocate(instruction: TransactionInstruction): AllocateParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n const {space} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.Allocate,\n instruction.data,\n );\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n space,\n };\n }\n\n /**\n * Decode an allocate with seed system instruction and retrieve the instruction params.\n */\n static decodeAllocateWithSeed(\n instruction: TransactionInstruction,\n ): AllocateWithSeedParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n const {base, seed, space, programId} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed,\n instruction.data,\n );\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n space,\n programId: new PublicKey(programId),\n };\n }\n\n /**\n * Decode an assign system instruction and retrieve the instruction params.\n */\n static decodeAssign(instruction: TransactionInstruction): AssignParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n const {programId} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.Assign,\n instruction.data,\n );\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n programId: new PublicKey(programId),\n };\n }\n\n /**\n * Decode an assign with seed system instruction and retrieve the instruction params.\n */\n static decodeAssignWithSeed(\n instruction: TransactionInstruction,\n ): AssignWithSeedParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 1);\n\n const {base, seed, programId} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed,\n instruction.data,\n );\n\n return {\n accountPubkey: instruction.keys[0].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n programId: new PublicKey(programId),\n };\n }\n\n /**\n * Decode a create account with seed system instruction and retrieve the instruction params.\n */\n static decodeCreateWithSeed(\n instruction: TransactionInstruction,\n ): CreateAccountWithSeedParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n const {base, seed, lamports, space, programId} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed,\n instruction.data,\n );\n\n return {\n fromPubkey: instruction.keys[0].pubkey,\n newAccountPubkey: instruction.keys[1].pubkey,\n basePubkey: new PublicKey(base),\n seed,\n lamports,\n space,\n programId: new PublicKey(programId),\n };\n }\n\n /**\n * Decode a nonce initialize system instruction and retrieve the instruction params.\n */\n static decodeNonceInitialize(\n instruction: TransactionInstruction,\n ): InitializeNonceParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n const {authorized} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount,\n instruction.data,\n );\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: new PublicKey(authorized),\n };\n }\n\n /**\n * Decode a nonce advance system instruction and retrieve the instruction params.\n */\n static decodeNonceAdvance(\n instruction: TransactionInstruction,\n ): AdvanceNonceParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount,\n instruction.data,\n );\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n };\n }\n\n /**\n * Decode a nonce withdraw system instruction and retrieve the instruction params.\n */\n static decodeNonceWithdraw(\n instruction: TransactionInstruction,\n ): WithdrawNonceParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n\n const {lamports} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount,\n instruction.data,\n );\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports,\n };\n }\n\n /**\n * Decode a nonce authorize system instruction and retrieve the instruction params.\n */\n static decodeNonceAuthorize(\n instruction: TransactionInstruction,\n ): AuthorizeNonceParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n const {authorized} = decodeData(\n SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount,\n instruction.data,\n );\n\n return {\n noncePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[1].pubkey,\n newAuthorizedPubkey: new PublicKey(authorized),\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId: PublicKey) {\n if (!programId.equals(SystemProgram.programId)) {\n throw new Error('invalid instruction; programId is not SystemProgram');\n }\n }\n\n /**\n * @internal\n */\n static checkKeyLength(keys: Array, expectedLength: number) {\n if (keys.length < expectedLength) {\n throw new Error(\n `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n );\n }\n }\n}\n\n/**\n * An enumeration of valid SystemInstructionType's\n */\nexport type SystemInstructionType =\n | 'AdvanceNonceAccount'\n | 'Allocate'\n | 'AllocateWithSeed'\n | 'Assign'\n | 'AssignWithSeed'\n | 'AuthorizeNonceAccount'\n | 'Create'\n | 'CreateWithSeed'\n | 'InitializeNonceAccount'\n | 'Transfer'\n | 'TransferWithSeed'\n | 'WithdrawNonceAccount';\n\n/**\n * An enumeration of valid system InstructionType's\n * @internal\n */\nexport const SYSTEM_INSTRUCTION_LAYOUTS: {\n [type in SystemInstructionType]: InstructionType;\n} = Object.freeze({\n Create: {\n index: 0,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n BufferLayout.ns64('space'),\n Layout.publicKey('programId'),\n ]),\n },\n Assign: {\n index: 1,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('programId'),\n ]),\n },\n Transfer: {\n index: 2,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n ]),\n },\n CreateWithSeed: {\n index: 3,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('base'),\n Layout.rustString('seed'),\n BufferLayout.ns64('lamports'),\n BufferLayout.ns64('space'),\n Layout.publicKey('programId'),\n ]),\n },\n AdvanceNonceAccount: {\n index: 4,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')]),\n },\n WithdrawNonceAccount: {\n index: 5,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n ]),\n },\n InitializeNonceAccount: {\n index: 6,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('authorized'),\n ]),\n },\n AuthorizeNonceAccount: {\n index: 7,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('authorized'),\n ]),\n },\n Allocate: {\n index: 8,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('space'),\n ]),\n },\n AllocateWithSeed: {\n index: 9,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('base'),\n Layout.rustString('seed'),\n BufferLayout.ns64('space'),\n Layout.publicKey('programId'),\n ]),\n },\n AssignWithSeed: {\n index: 10,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('base'),\n Layout.rustString('seed'),\n Layout.publicKey('programId'),\n ]),\n },\n TransferWithSeed: {\n index: 11,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n Layout.rustString('seed'),\n Layout.publicKey('programId'),\n ]),\n },\n});\n\n/**\n * Factory class for transactions to interact with the System program\n */\nexport class SystemProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the System program\n */\n static programId: PublicKey = new PublicKey(\n '11111111111111111111111111111111',\n );\n\n /**\n * Generate a transaction instruction that creates a new account\n */\n static createAccount(params: CreateAccountParams): TransactionInstruction {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Create;\n const data = encodeData(type, {\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer()),\n });\n\n return new TransactionInstruction({\n keys: [\n {pubkey: params.fromPubkey, isSigner: true, isWritable: true},\n {pubkey: params.newAccountPubkey, isSigner: true, isWritable: true},\n ],\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction instruction that transfers lamports from one account to another\n */\n static transfer(\n params: TransferParams | TransferWithSeedParams,\n ): TransactionInstruction {\n let data;\n let keys;\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed;\n data = encodeData(type, {\n lamports: params.lamports,\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer()),\n });\n keys = [\n {pubkey: params.fromPubkey, isSigner: false, isWritable: true},\n {pubkey: params.basePubkey, isSigner: true, isWritable: false},\n {pubkey: params.toPubkey, isSigner: false, isWritable: true},\n ];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Transfer;\n data = encodeData(type, {lamports: params.lamports});\n keys = [\n {pubkey: params.fromPubkey, isSigner: true, isWritable: true},\n {pubkey: params.toPubkey, isSigner: false, isWritable: true},\n ];\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction instruction that assigns an account to a program\n */\n static assign(\n params: AssignParams | AssignWithSeedParams,\n ): TransactionInstruction {\n let data;\n let keys;\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed;\n data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n programId: toBuffer(params.programId.toBuffer()),\n });\n keys = [\n {pubkey: params.accountPubkey, isSigner: false, isWritable: true},\n {pubkey: params.basePubkey, isSigner: true, isWritable: false},\n ];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Assign;\n data = encodeData(type, {\n programId: toBuffer(params.programId.toBuffer()),\n });\n keys = [{pubkey: params.accountPubkey, isSigner: true, isWritable: true}];\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction instruction that creates a new account at\n * an address generated with `from`, a seed, and programId\n */\n static createAccountWithSeed(\n params: CreateAccountWithSeedParams,\n ): TransactionInstruction {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed;\n const data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n lamports: params.lamports,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer()),\n });\n let keys = [\n {pubkey: params.fromPubkey, isSigner: true, isWritable: true},\n {pubkey: params.newAccountPubkey, isSigner: false, isWritable: true},\n ];\n if (params.basePubkey != params.fromPubkey) {\n keys.push({pubkey: params.basePubkey, isSigner: true, isWritable: false});\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction that creates a new Nonce account\n */\n static createNonceAccount(\n params: CreateNonceAccountParams | CreateNonceAccountWithSeedParams,\n ): Transaction {\n const transaction = new Transaction();\n if ('basePubkey' in params && 'seed' in params) {\n transaction.add(\n SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId,\n }),\n );\n } else {\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.noncePubkey,\n lamports: params.lamports,\n space: NONCE_ACCOUNT_LENGTH,\n programId: this.programId,\n }),\n );\n }\n\n const initParams = {\n noncePubkey: params.noncePubkey,\n authorizedPubkey: params.authorizedPubkey,\n };\n\n transaction.add(this.nonceInitialize(initParams));\n return transaction;\n }\n\n /**\n * Generate an instruction to initialize a Nonce account\n */\n static nonceInitialize(\n params: InitializeNonceParams,\n ): TransactionInstruction {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount;\n const data = encodeData(type, {\n authorized: toBuffer(params.authorizedPubkey.toBuffer()),\n });\n const instructionData = {\n keys: [\n {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ],\n programId: this.programId,\n data,\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate an instruction to advance the nonce in a Nonce account\n */\n static nonceAdvance(params: AdvanceNonceParams): TransactionInstruction {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount;\n const data = encodeData(type);\n const instructionData = {\n keys: [\n {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {pubkey: params.authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate a transaction instruction that withdraws lamports from a Nonce account\n */\n static nonceWithdraw(params: WithdrawNonceParams): TransactionInstruction {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount;\n const data = encodeData(type, {lamports: params.lamports});\n\n return new TransactionInstruction({\n keys: [\n {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n {pubkey: params.toPubkey, isSigner: false, isWritable: true},\n {\n pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: SYSVAR_RENT_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {pubkey: params.authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction instruction that authorizes a new PublicKey as the authority\n * on a Nonce account.\n */\n static nonceAuthorize(params: AuthorizeNonceParams): TransactionInstruction {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount;\n const data = encodeData(type, {\n authorized: toBuffer(params.newAuthorizedPubkey.toBuffer()),\n });\n\n return new TransactionInstruction({\n keys: [\n {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n {pubkey: params.authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction instruction that allocates space in an account without funding\n */\n static allocate(\n params: AllocateParams | AllocateWithSeedParams,\n ): TransactionInstruction {\n let data;\n let keys;\n if ('basePubkey' in params) {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed;\n data = encodeData(type, {\n base: toBuffer(params.basePubkey.toBuffer()),\n seed: params.seed,\n space: params.space,\n programId: toBuffer(params.programId.toBuffer()),\n });\n keys = [\n {pubkey: params.accountPubkey, isSigner: false, isWritable: true},\n {pubkey: params.basePubkey, isSigner: true, isWritable: false},\n ];\n } else {\n const type = SYSTEM_INSTRUCTION_LAYOUTS.Allocate;\n data = encodeData(type, {\n space: params.space,\n });\n keys = [{pubkey: params.accountPubkey, isSigner: true, isWritable: true}];\n }\n\n return new TransactionInstruction({\n keys,\n programId: this.programId,\n data,\n });\n }\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport {PublicKey} from './publickey';\nimport {Transaction, PACKET_DATA_SIZE} from './transaction';\nimport {SYSVAR_RENT_PUBKEY} from './sysvar';\nimport {sendAndConfirmTransaction} from './util/send-and-confirm-transaction';\nimport {sleep} from './util/sleep';\nimport type {Connection} from './connection';\nimport type {Signer} from './keypair';\nimport {SystemProgram} from './system-program';\n\n// Keep program chunks under PACKET_DATA_SIZE, leaving enough room for the\n// rest of the Transaction fields\n//\n// TODO: replace 300 with a proper constant for the size of the other\n// Transaction fields\nconst CHUNK_SIZE = PACKET_DATA_SIZE - 300;\n\n/**\n * Program loader interface\n */\nexport class Loader {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Amount of program data placed in each load Transaction\n */\n static chunkSize: number = CHUNK_SIZE;\n\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n static getMinNumSignatures(dataLength: number): number {\n return (\n 2 * // Every transaction requires two signatures (payer + program)\n (Math.ceil(dataLength / Loader.chunkSize) +\n 1 + // Add one for Create transaction\n 1) // Add one for Finalize transaction\n );\n }\n\n /**\n * Loads a generic program\n *\n * @param connection The connection to use\n * @param payer System account that pays to load the program\n * @param program Account to load the program into\n * @param programId Public key that identifies the loader\n * @param data Program octets\n * @return true if program was loaded successfully, false if program was already loaded\n */\n static async load(\n connection: Connection,\n payer: Signer,\n program: Signer,\n programId: PublicKey,\n data: Buffer | Uint8Array | Array,\n ): Promise {\n {\n const balanceNeeded = await connection.getMinimumBalanceForRentExemption(\n data.length,\n );\n\n // Fetch program account info to check if it has already been created\n const programInfo = await connection.getAccountInfo(\n program.publicKey,\n 'confirmed',\n );\n\n let transaction: Transaction | null = null;\n if (programInfo !== null) {\n if (programInfo.executable) {\n console.error('Program load failed, account is already executable');\n return false;\n }\n\n if (programInfo.data.length !== data.length) {\n transaction = transaction || new Transaction();\n transaction.add(\n SystemProgram.allocate({\n accountPubkey: program.publicKey,\n space: data.length,\n }),\n );\n }\n\n if (!programInfo.owner.equals(programId)) {\n transaction = transaction || new Transaction();\n transaction.add(\n SystemProgram.assign({\n accountPubkey: program.publicKey,\n programId,\n }),\n );\n }\n\n if (programInfo.lamports < balanceNeeded) {\n transaction = transaction || new Transaction();\n transaction.add(\n SystemProgram.transfer({\n fromPubkey: payer.publicKey,\n toPubkey: program.publicKey,\n lamports: balanceNeeded - programInfo.lamports,\n }),\n );\n }\n } else {\n transaction = new Transaction().add(\n SystemProgram.createAccount({\n fromPubkey: payer.publicKey,\n newAccountPubkey: program.publicKey,\n lamports: balanceNeeded > 0 ? balanceNeeded : 1,\n space: data.length,\n programId,\n }),\n );\n }\n\n // If the account is already created correctly, skip this step\n // and proceed directly to loading instructions\n if (transaction !== null) {\n await sendAndConfirmTransaction(\n connection,\n transaction,\n [payer, program],\n {\n commitment: 'confirmed',\n },\n );\n }\n }\n\n const dataLayout = BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.u32('offset'),\n BufferLayout.u32('bytesLength'),\n BufferLayout.u32('bytesLengthPadding'),\n BufferLayout.seq(\n BufferLayout.u8('byte'),\n BufferLayout.offset(BufferLayout.u32(), -8),\n 'bytes',\n ),\n ]);\n\n const chunkSize = Loader.chunkSize;\n let offset = 0;\n let array = data;\n let transactions = [];\n while (array.length > 0) {\n const bytes = array.slice(0, chunkSize);\n const data = Buffer.alloc(chunkSize + 16);\n dataLayout.encode(\n {\n instruction: 0, // Load instruction\n offset,\n bytes,\n },\n data,\n );\n\n const transaction = new Transaction().add({\n keys: [{pubkey: program.publicKey, isSigner: true, isWritable: true}],\n programId,\n data,\n });\n transactions.push(\n sendAndConfirmTransaction(connection, transaction, [payer, program], {\n commitment: 'confirmed',\n }),\n );\n\n // Delay between sends in an attempt to reduce rate limit errors\n if (connection._rpcEndpoint.includes('solana.com')) {\n const REQUESTS_PER_SECOND = 4;\n await sleep(1000 / REQUESTS_PER_SECOND);\n }\n\n offset += chunkSize;\n array = array.slice(chunkSize);\n }\n await Promise.all(transactions);\n\n // Finalize the account loaded with program data for execution\n {\n const dataLayout = BufferLayout.struct([BufferLayout.u32('instruction')]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 1, // Finalize instruction\n },\n data,\n );\n\n const transaction = new Transaction().add({\n keys: [\n {pubkey: program.publicKey, isSigner: true, isWritable: true},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ],\n programId,\n data,\n });\n await sendAndConfirmTransaction(\n connection,\n transaction,\n [payer, program],\n {\n commitment: 'confirmed',\n },\n );\n }\n\n // success\n return true;\n }\n}\n","import type {Buffer} from 'buffer';\n\nimport {PublicKey} from './publickey';\nimport {Loader} from './loader';\nimport type {Connection} from './connection';\nimport type {Signer} from './keypair';\n\nexport const BPF_LOADER_PROGRAM_ID = new PublicKey(\n 'BPFLoader2111111111111111111111111111111111',\n);\n\n/**\n * Factory class for transactions to interact with a program loader\n */\nexport class BpfLoader {\n /**\n * Minimum number of signatures required to load a program not including\n * retries\n *\n * Can be used to calculate transaction fees\n */\n static getMinNumSignatures(dataLength: number): number {\n return Loader.getMinNumSignatures(dataLength);\n }\n\n /**\n * Load a BPF program\n *\n * @param connection The connection to use\n * @param payer Account that will pay program loading fees\n * @param program Account to load the program into\n * @param elf The entire ELF containing the BPF program\n * @param loaderProgramId The program id of the BPF loader to use\n * @return true if program was loaded successfully, false if program was already loaded\n */\n static load(\n connection: Connection,\n payer: Signer,\n program: Signer,\n elf: Buffer | Uint8Array | Array,\n loaderProgramId: PublicKey,\n ): Promise {\n return Loader.load(connection, payer, program, loaderProgramId, elf);\n }\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","const MINIMUM_SLOT_PER_EPOCH = 32;\n\n// Returns the number of trailing zeros in the binary representation of self.\nfunction trailingZeros(n: number) {\n let trailingZeros = 0;\n while (n > 1) {\n n /= 2;\n trailingZeros++;\n }\n return trailingZeros;\n}\n\n// Returns the smallest power of two greater than or equal to n\nfunction nextPowerOfTwo(n: number) {\n if (n === 0) return 1;\n n--;\n n |= n >> 1;\n n |= n >> 2;\n n |= n >> 4;\n n |= n >> 8;\n n |= n >> 16;\n n |= n >> 32;\n return n + 1;\n}\n\n/**\n * Epoch schedule\n * (see https://docs.solana.com/terminology#epoch)\n * Can be retrieved with the {@link connection.getEpochSchedule} method\n */\nexport class EpochSchedule {\n /** The maximum number of slots in each epoch */\n public slotsPerEpoch: number;\n /** The number of slots before beginning of an epoch to calculate a leader schedule for that epoch */\n public leaderScheduleSlotOffset: number;\n /** Indicates whether epochs start short and grow */\n public warmup: boolean;\n /** The first epoch with `slotsPerEpoch` slots */\n public firstNormalEpoch: number;\n /** The first slot of `firstNormalEpoch` */\n public firstNormalSlot: number;\n\n constructor(\n slotsPerEpoch: number,\n leaderScheduleSlotOffset: number,\n warmup: boolean,\n firstNormalEpoch: number,\n firstNormalSlot: number,\n ) {\n this.slotsPerEpoch = slotsPerEpoch;\n this.leaderScheduleSlotOffset = leaderScheduleSlotOffset;\n this.warmup = warmup;\n this.firstNormalEpoch = firstNormalEpoch;\n this.firstNormalSlot = firstNormalSlot;\n }\n\n getEpoch(slot: number): number {\n return this.getEpochAndSlotIndex(slot)[0];\n }\n\n getEpochAndSlotIndex(slot: number): [number, number] {\n if (slot < this.firstNormalSlot) {\n const epoch =\n trailingZeros(nextPowerOfTwo(slot + MINIMUM_SLOT_PER_EPOCH + 1)) -\n trailingZeros(MINIMUM_SLOT_PER_EPOCH) -\n 1;\n\n const epochLen = this.getSlotsInEpoch(epoch);\n const slotIndex = slot - (epochLen - MINIMUM_SLOT_PER_EPOCH);\n return [epoch, slotIndex];\n } else {\n const normalSlotIndex = slot - this.firstNormalSlot;\n const normalEpochIndex = Math.floor(normalSlotIndex / this.slotsPerEpoch);\n const epoch = this.firstNormalEpoch + normalEpochIndex;\n const slotIndex = normalSlotIndex % this.slotsPerEpoch;\n return [epoch, slotIndex];\n }\n }\n\n getFirstSlotInEpoch(epoch: number): number {\n if (epoch <= this.firstNormalEpoch) {\n return (Math.pow(2, epoch) - 1) * MINIMUM_SLOT_PER_EPOCH;\n } else {\n return (\n (epoch - this.firstNormalEpoch) * this.slotsPerEpoch +\n this.firstNormalSlot\n );\n }\n }\n\n getLastSlotInEpoch(epoch: number): number {\n return this.getFirstSlotInEpoch(epoch) + this.getSlotsInEpoch(epoch) - 1;\n }\n\n getSlotsInEpoch(epoch: number) {\n if (epoch < this.firstNormalEpoch) {\n return Math.pow(2, epoch + trailingZeros(MINIMUM_SLOT_PER_EPOCH));\n } else {\n return this.slotsPerEpoch;\n }\n }\n}\n","import { WalletError } from '@solana/wallet-adapter-base';\nexport class WalletNotSelectedError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletNotSelectedError';\n }\n}\n//# sourceMappingURL=errors.js.map","export function promiseTimeout(\n promise: Promise,\n timeoutMs: number,\n): Promise {\n let timeoutId: ReturnType;\n const timeoutPromise: Promise = new Promise(resolve => {\n timeoutId = setTimeout(() => resolve(null), timeoutMs);\n });\n\n return Promise.race([promise, timeoutPromise]).then((result: T | null) => {\n clearTimeout(timeoutId);\n return result;\n });\n}\n","import bs58 from 'bs58';\nimport {Buffer} from 'buffer';\nimport fetch from 'cross-fetch';\nimport type {Response} from 'cross-fetch';\nimport {\n type as pick,\n number,\n string,\n array,\n boolean,\n literal,\n record,\n union,\n optional,\n nullable,\n coerce,\n instance,\n create,\n tuple,\n unknown,\n any,\n} from 'superstruct';\nimport type {Struct} from 'superstruct';\nimport {Client as RpcWebSocketClient} from 'rpc-websockets';\nimport RpcClient from 'jayson/lib/client/browser';\nimport {IWSRequestParams} from 'rpc-websockets/dist/lib/client';\n\nimport {AgentManager} from './agent-manager';\nimport {EpochSchedule} from './epoch-schedule';\nimport {SendTransactionError} from './errors';\nimport {NonceAccount} from './nonce-account';\nimport {PublicKey} from './publickey';\nimport {Signer} from './keypair';\nimport {MS_PER_SLOT} from './timing';\nimport {Transaction} from './transaction';\nimport {Message} from './message';\nimport assert from './util/assert';\nimport {sleep} from './util/sleep';\nimport {promiseTimeout} from './util/promise-timeout';\nimport {toBuffer} from './util/to-buffer';\nimport {makeWebsocketUrl} from './util/url';\nimport type {Blockhash} from './blockhash';\nimport type {FeeCalculator} from './fee-calculator';\nimport type {TransactionSignature} from './transaction';\nimport type {CompiledInstruction} from './message';\n\nconst PublicKeyFromString = coerce(\n instance(PublicKey),\n string(),\n value => new PublicKey(value),\n);\n\nconst RawAccountDataResult = tuple([string(), literal('base64')]);\n\nconst BufferFromRawAccountData = coerce(\n instance(Buffer),\n RawAccountDataResult,\n value => Buffer.from(value[0], 'base64'),\n);\n\n/**\n * Attempt to use a recent blockhash for up to 30 seconds\n * @internal\n */\nexport const BLOCKHASH_CACHE_TIMEOUT_MS = 30 * 1000;\n\ntype RpcRequest = (methodName: string, args: Array) => any;\n\ntype RpcBatchRequest = (requests: RpcParams[]) => any;\n\n/**\n * @internal\n */\nexport type RpcParams = {\n methodName: string;\n args: Array;\n};\n\nexport type TokenAccountsFilter =\n | {\n mint: PublicKey;\n }\n | {\n programId: PublicKey;\n };\n\n/**\n * Extra contextual information for RPC responses\n */\nexport type Context = {\n slot: number;\n};\n\n/**\n * Options for sending transactions\n */\nexport type SendOptions = {\n /** disable transaction verification step */\n skipPreflight?: boolean;\n /** preflight commitment level */\n preflightCommitment?: Commitment;\n /** Maximum number of times for the RPC node to retry sending the transaction to the leader. */\n maxRetries?: number;\n};\n\n/**\n * Options for confirming transactions\n */\nexport type ConfirmOptions = {\n /** disable transaction verification step */\n skipPreflight?: boolean;\n /** desired commitment level */\n commitment?: Commitment;\n /** preflight commitment level */\n preflightCommitment?: Commitment;\n /** Maximum number of times for the RPC node to retry sending the transaction to the leader. */\n maxRetries?: number;\n};\n\n/**\n * Options for getConfirmedSignaturesForAddress2\n */\nexport type ConfirmedSignaturesForAddress2Options = {\n /**\n * Start searching backwards from this transaction signature.\n * @remark If not provided the search starts from the highest max confirmed block.\n */\n before?: TransactionSignature;\n /** Search until this transaction signature is reached, if found before `limit`. */\n until?: TransactionSignature;\n /** Maximum transaction signatures to return (between 1 and 1,000, default: 1,000). */\n limit?: number;\n};\n\n/**\n * Options for getSignaturesForAddress\n */\nexport type SignaturesForAddressOptions = {\n /**\n * Start searching backwards from this transaction signature.\n * @remark If not provided the search starts from the highest max confirmed block.\n */\n before?: TransactionSignature;\n /** Search until this transaction signature is reached, if found before `limit`. */\n until?: TransactionSignature;\n /** Maximum transaction signatures to return (between 1 and 1,000, default: 1,000). */\n limit?: number;\n};\n\n/**\n * RPC Response with extra contextual information\n */\nexport type RpcResponseAndContext = {\n /** response context */\n context: Context;\n /** response value */\n value: T;\n};\n\n/**\n * @internal\n */\nfunction createRpcResult(result: Struct) {\n return union([\n pick({\n jsonrpc: literal('2.0'),\n id: string(),\n result,\n }),\n pick({\n jsonrpc: literal('2.0'),\n id: string(),\n error: pick({\n code: unknown(),\n message: string(),\n data: optional(any()),\n }),\n }),\n ]);\n}\n\nconst UnknownRpcResult = createRpcResult(unknown());\n\n/**\n * @internal\n */\nfunction jsonRpcResult(schema: Struct) {\n return coerce(createRpcResult(schema), UnknownRpcResult, value => {\n if ('error' in value) {\n return value;\n } else {\n return {\n ...value,\n result: create(value.result, schema),\n };\n }\n });\n}\n\n/**\n * @internal\n */\nfunction jsonRpcResultAndContext(value: Struct) {\n return jsonRpcResult(\n pick({\n context: pick({\n slot: number(),\n }),\n value,\n }),\n );\n}\n\n/**\n * @internal\n */\nfunction notificationResultAndContext(value: Struct) {\n return pick({\n context: pick({\n slot: number(),\n }),\n value,\n });\n}\n\n/**\n * The level of commitment desired when querying state\n *
\n *   'processed': Query the most recent block which has reached 1 confirmation by the connected node\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\nexport type Commitment =\n | 'processed'\n | 'confirmed'\n | 'finalized'\n | 'recent' // Deprecated as of v1.5.5\n | 'single' // Deprecated as of v1.5.5\n | 'singleGossip' // Deprecated as of v1.5.5\n | 'root' // Deprecated as of v1.5.5\n | 'max'; // Deprecated as of v1.5.5\n\n/**\n * A subset of Commitment levels, which are at least optimistically confirmed\n *
\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * 
\n */\nexport type Finality = 'confirmed' | 'finalized';\n\n/**\n * Filter for largest accounts query\n *
\n *   'circulating':    Return the largest accounts that are part of the circulating supply\n *   'nonCirculating': Return the largest accounts that are not part of the circulating supply\n * 
\n */\nexport type LargestAccountsFilter = 'circulating' | 'nonCirculating';\n\n/**\n * Configuration object for changing `getLargestAccounts` query behavior\n */\nexport type GetLargestAccountsConfig = {\n /** The level of commitment desired */\n commitment?: Commitment;\n /** Filter largest accounts by whether they are part of the circulating supply */\n filter?: LargestAccountsFilter;\n};\n\n/**\n * Configuration object for changing `getSupply` request behavior\n */\nexport type GetSupplyConfig = {\n /** The level of commitment desired */\n commitment?: Commitment;\n /** Exclude non circulating accounts list from response */\n excludeNonCirculatingAccountsList?: boolean;\n};\n\n/**\n * Configuration object for changing query behavior\n */\nexport type SignatureStatusConfig = {\n /** enable searching status history, not needed for recent transactions */\n searchTransactionHistory: boolean;\n};\n\n/**\n * Information describing a cluster node\n */\nexport type ContactInfo = {\n /** Identity public key of the node */\n pubkey: string;\n /** Gossip network address for the node */\n gossip: string | null;\n /** TPU network address for the node (null if not available) */\n tpu: string | null;\n /** JSON RPC network address for the node (null if not available) */\n rpc: string | null;\n /** Software version of the node (null if not available) */\n version: string | null;\n};\n\n/**\n * Information describing a vote account\n */\nexport type VoteAccountInfo = {\n /** Public key of the vote account */\n votePubkey: string;\n /** Identity public key of the node voting with this account */\n nodePubkey: string;\n /** The stake, in lamports, delegated to this vote account and activated */\n activatedStake: number;\n /** Whether the vote account is staked for this epoch */\n epochVoteAccount: boolean;\n /** Recent epoch voting credit history for this voter */\n epochCredits: Array<[number, number, number]>;\n /** A percentage (0-100) of rewards payout owed to the voter */\n commission: number;\n /** Most recent slot voted on by this vote account */\n lastVote: number;\n};\n\n/**\n * A collection of cluster vote accounts\n */\nexport type VoteAccountStatus = {\n /** Active vote accounts */\n current: Array;\n /** Inactive vote accounts */\n delinquent: Array;\n};\n\n/**\n * Network Inflation\n * (see https://docs.solana.com/implemented-proposals/ed_overview)\n */\nexport type InflationGovernor = {\n foundation: number;\n foundationTerm: number;\n initial: number;\n taper: number;\n terminal: number;\n};\n\nconst GetInflationGovernorResult = pick({\n foundation: number(),\n foundationTerm: number(),\n initial: number(),\n taper: number(),\n terminal: number(),\n});\n\n/**\n * The inflation reward for an epoch\n */\nexport type InflationReward = {\n /** epoch for which the reward occurs */\n epoch: number;\n /** the slot in which the rewards are effective */\n effectiveSlot: number;\n /** reward amount in lamports */\n amount: number;\n /** post balance of the account in lamports */\n postBalance: number;\n};\n\n/**\n * Expected JSON RPC response for the \"getInflationReward\" message\n */\nconst GetInflationRewardResult = jsonRpcResult(\n array(\n nullable(\n pick({\n epoch: number(),\n effectiveSlot: number(),\n amount: number(),\n postBalance: number(),\n }),\n ),\n ),\n);\n\n/**\n * Information about the current epoch\n */\nexport type EpochInfo = {\n epoch: number;\n slotIndex: number;\n slotsInEpoch: number;\n absoluteSlot: number;\n blockHeight?: number;\n transactionCount?: number;\n};\n\nconst GetEpochInfoResult = pick({\n epoch: number(),\n slotIndex: number(),\n slotsInEpoch: number(),\n absoluteSlot: number(),\n blockHeight: optional(number()),\n transactionCount: optional(number()),\n});\n\nconst GetEpochScheduleResult = pick({\n slotsPerEpoch: number(),\n leaderScheduleSlotOffset: number(),\n warmup: boolean(),\n firstNormalEpoch: number(),\n firstNormalSlot: number(),\n});\n\n/**\n * Leader schedule\n * (see https://docs.solana.com/terminology#leader-schedule)\n */\nexport type LeaderSchedule = {\n [address: string]: number[];\n};\n\nconst GetLeaderScheduleResult = record(string(), array(number()));\n\n/**\n * Transaction error or null\n */\nconst TransactionErrorResult = nullable(union([pick({}), string()]));\n\n/**\n * Signature status for a transaction\n */\nconst SignatureStatusResult = pick({\n err: TransactionErrorResult,\n});\n\n/**\n * Transaction signature received notification\n */\nconst SignatureReceivedResult = literal('receivedSignature');\n\n/**\n * Version info for a node\n */\nexport type Version = {\n /** Version of solana-core */\n 'solana-core': string;\n 'feature-set'?: number;\n};\n\nconst VersionResult = pick({\n 'solana-core': string(),\n 'feature-set': optional(number()),\n});\n\nexport type SimulatedTransactionAccountInfo = {\n /** `true` if this account's data contains a loaded program */\n executable: boolean;\n /** Identifier of the program that owns the account */\n owner: string;\n /** Number of lamports assigned to the account */\n lamports: number;\n /** Optional data assigned to the account */\n data: string[];\n /** Optional rent epoch info for account */\n rentEpoch?: number;\n};\n\nexport type SimulatedTransactionResponse = {\n err: TransactionError | string | null;\n logs: Array | null;\n accounts?: (SimulatedTransactionAccountInfo | null)[] | null;\n unitsConsumed?: number;\n};\n\nconst SimulatedTransactionResponseStruct = jsonRpcResultAndContext(\n pick({\n err: nullable(union([pick({}), string()])),\n logs: nullable(array(string())),\n accounts: optional(\n nullable(\n array(\n nullable(\n pick({\n executable: boolean(),\n owner: string(),\n lamports: number(),\n data: array(string()),\n rentEpoch: optional(number()),\n }),\n ),\n ),\n ),\n ),\n unitsConsumed: optional(number()),\n }),\n);\n\nexport type ParsedInnerInstruction = {\n index: number;\n instructions: (ParsedInstruction | PartiallyDecodedInstruction)[];\n};\n\nexport type TokenBalance = {\n accountIndex: number;\n mint: string;\n owner?: string;\n uiTokenAmount: TokenAmount;\n};\n\n/**\n * Metadata for a parsed confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link ParsedTransactionMeta} instead.\n */\nexport type ParsedConfirmedTransactionMeta = ParsedTransactionMeta;\n\n/**\n * Metadata for a parsed transaction on the ledger\n */\nexport type ParsedTransactionMeta = {\n /** The fee charged for processing the transaction */\n fee: number;\n /** An array of cross program invoked parsed instructions */\n innerInstructions?: ParsedInnerInstruction[] | null;\n /** The balances of the transaction accounts before processing */\n preBalances: Array;\n /** The balances of the transaction accounts after processing */\n postBalances: Array;\n /** An array of program log messages emitted during a transaction */\n logMessages?: Array | null;\n /** The token balances of the transaction accounts before processing */\n preTokenBalances?: Array | null;\n /** The token balances of the transaction accounts after processing */\n postTokenBalances?: Array | null;\n /** The error result of transaction processing */\n err: TransactionError | null;\n};\n\nexport type CompiledInnerInstruction = {\n index: number;\n instructions: CompiledInstruction[];\n};\n\n/**\n * Metadata for a confirmed transaction on the ledger\n */\nexport type ConfirmedTransactionMeta = {\n /** The fee charged for processing the transaction */\n fee: number;\n /** An array of cross program invoked instructions */\n innerInstructions?: CompiledInnerInstruction[] | null;\n /** The balances of the transaction accounts before processing */\n preBalances: Array;\n /** The balances of the transaction accounts after processing */\n postBalances: Array;\n /** An array of program log messages emitted during a transaction */\n logMessages?: Array | null;\n /** The token balances of the transaction accounts before processing */\n preTokenBalances?: Array | null;\n /** The token balances of the transaction accounts after processing */\n postTokenBalances?: Array | null;\n /** The error result of transaction processing */\n err: TransactionError | null;\n};\n\n/**\n * A processed transaction from the RPC API\n */\nexport type TransactionResponse = {\n /** The slot during which the transaction was processed */\n slot: number;\n /** The transaction */\n transaction: {\n /** The transaction message */\n message: Message;\n /** The transaction signatures */\n signatures: string[];\n };\n /** Metadata produced from the transaction */\n meta: ConfirmedTransactionMeta | null;\n /** The unix timestamp of when the transaction was processed */\n blockTime?: number | null;\n};\n\n/**\n * A confirmed transaction on the ledger\n */\nexport type ConfirmedTransaction = {\n /** The slot during which the transaction was processed */\n slot: number;\n /** The details of the transaction */\n transaction: Transaction;\n /** Metadata produced from the transaction */\n meta: ConfirmedTransactionMeta | null;\n /** The unix timestamp of when the transaction was processed */\n blockTime?: number | null;\n};\n\n/**\n * A partially decoded transaction instruction\n */\nexport type PartiallyDecodedInstruction = {\n /** Program id called by this instruction */\n programId: PublicKey;\n /** Public keys of accounts passed to this instruction */\n accounts: Array;\n /** Raw base-58 instruction data */\n data: string;\n};\n\n/**\n * A parsed transaction message account\n */\nexport type ParsedMessageAccount = {\n /** Public key of the account */\n pubkey: PublicKey;\n /** Indicates if the account signed the transaction */\n signer: boolean;\n /** Indicates if the account is writable for this transaction */\n writable: boolean;\n};\n\n/**\n * A parsed transaction instruction\n */\nexport type ParsedInstruction = {\n /** Name of the program for this instruction */\n program: string;\n /** ID of the program for this instruction */\n programId: PublicKey;\n /** Parsed instruction info */\n parsed: any;\n};\n\n/**\n * A parsed transaction message\n */\nexport type ParsedMessage = {\n /** Accounts used in the instructions */\n accountKeys: ParsedMessageAccount[];\n /** The atomically executed instructions for the transaction */\n instructions: (ParsedInstruction | PartiallyDecodedInstruction)[];\n /** Recent blockhash */\n recentBlockhash: string;\n};\n\n/**\n * A parsed transaction\n */\nexport type ParsedTransaction = {\n /** Signatures for the transaction */\n signatures: Array;\n /** Message of the transaction */\n message: ParsedMessage;\n};\n\n/**\n * A parsed and confirmed transaction on the ledger\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link ParsedTransactionWithMeta} instead.\n */\nexport type ParsedConfirmedTransaction = ParsedTransactionWithMeta;\n\n/**\n * A parsed transaction on the ledger with meta\n */\nexport type ParsedTransactionWithMeta = {\n /** The slot during which the transaction was processed */\n slot: number;\n /** The details of the transaction */\n transaction: ParsedTransaction;\n /** Metadata produced from the transaction */\n meta: ParsedTransactionMeta | null;\n /** The unix timestamp of when the transaction was processed */\n blockTime?: number | null;\n};\n\n/**\n * A processed block fetched from the RPC API\n */\nexport type BlockResponse = {\n /** Blockhash of this block */\n blockhash: Blockhash;\n /** Blockhash of this block's parent */\n previousBlockhash: Blockhash;\n /** Slot index of this block's parent */\n parentSlot: number;\n /** Vector of transactions with status meta and original message */\n transactions: Array<{\n /** The transaction */\n transaction: {\n /** The transaction message */\n message: Message;\n /** The transaction signatures */\n signatures: string[];\n };\n /** Metadata produced from the transaction */\n meta: ConfirmedTransactionMeta | null;\n }>;\n /** Vector of block rewards */\n rewards?: Array<{\n /** Public key of reward recipient */\n pubkey: string;\n /** Reward value in lamports */\n lamports: number;\n /** Account balance after reward is applied */\n postBalance: number | null;\n /** Type of reward received */\n rewardType: string | null;\n }>;\n /** The unix timestamp of when the block was processed */\n blockTime: number | null;\n};\n\n/**\n * A ConfirmedBlock on the ledger\n */\nexport type ConfirmedBlock = {\n /** Blockhash of this block */\n blockhash: Blockhash;\n /** Blockhash of this block's parent */\n previousBlockhash: Blockhash;\n /** Slot index of this block's parent */\n parentSlot: number;\n /** Vector of transactions and status metas */\n transactions: Array<{\n transaction: Transaction;\n meta: ConfirmedTransactionMeta | null;\n }>;\n /** Vector of block rewards */\n rewards?: Array<{\n pubkey: string;\n lamports: number;\n postBalance: number | null;\n rewardType: string | null;\n }>;\n /** The unix timestamp of when the block was processed */\n blockTime: number | null;\n};\n\n/**\n * A Block on the ledger with signatures only\n */\nexport type BlockSignatures = {\n /** Blockhash of this block */\n blockhash: Blockhash;\n /** Blockhash of this block's parent */\n previousBlockhash: Blockhash;\n /** Slot index of this block's parent */\n parentSlot: number;\n /** Vector of signatures */\n signatures: Array;\n /** The unix timestamp of when the block was processed */\n blockTime: number | null;\n};\n\n/**\n * A performance sample\n */\nexport type PerfSample = {\n /** Slot number of sample */\n slot: number;\n /** Number of transactions in a sample window */\n numTransactions: number;\n /** Number of slots in a sample window */\n numSlots: number;\n /** Sample window in seconds */\n samplePeriodSecs: number;\n};\n\nfunction createRpcClient(\n url: string,\n useHttps: boolean,\n httpHeaders?: HttpHeaders,\n fetchMiddleware?: FetchMiddleware,\n disableRetryOnRateLimit?: boolean,\n): RpcClient {\n let agentManager: AgentManager | undefined;\n if (!process.env.BROWSER) {\n agentManager = new AgentManager(useHttps);\n }\n\n let fetchWithMiddleware:\n | ((url: string, options: any) => Promise)\n | undefined;\n\n if (fetchMiddleware) {\n fetchWithMiddleware = async (url: string, options: any) => {\n const modifiedFetchArgs = await new Promise<[string, any]>(\n (resolve, reject) => {\n try {\n fetchMiddleware(url, options, (modifiedUrl, modifiedOptions) =>\n resolve([modifiedUrl, modifiedOptions]),\n );\n } catch (error) {\n reject(error);\n }\n },\n );\n return await fetch(...modifiedFetchArgs);\n };\n }\n\n const clientBrowser = new RpcClient(async (request, callback) => {\n const agent = agentManager ? agentManager.requestStart() : undefined;\n const options = {\n method: 'POST',\n body: request,\n agent,\n headers: Object.assign(\n {\n 'Content-Type': 'application/json',\n },\n httpHeaders || {},\n ),\n };\n\n try {\n let too_many_requests_retries = 5;\n let res: Response;\n let waitTime = 500;\n for (;;) {\n if (fetchWithMiddleware) {\n res = await fetchWithMiddleware(url, options);\n } else {\n res = await fetch(url, options);\n }\n\n if (res.status !== 429 /* Too many requests */) {\n break;\n }\n if (disableRetryOnRateLimit === true) {\n break;\n }\n too_many_requests_retries -= 1;\n if (too_many_requests_retries === 0) {\n break;\n }\n console.log(\n `Server responded with ${res.status} ${res.statusText}. Retrying after ${waitTime}ms delay...`,\n );\n await sleep(waitTime);\n waitTime *= 2;\n }\n\n const text = await res.text();\n if (res.ok) {\n callback(null, text);\n } else {\n callback(new Error(`${res.status} ${res.statusText}: ${text}`));\n }\n } catch (err) {\n if (err instanceof Error) callback(err);\n } finally {\n agentManager && agentManager.requestEnd();\n }\n }, {});\n\n return clientBrowser;\n}\n\nfunction createRpcRequest(client: RpcClient): RpcRequest {\n return (method, args) => {\n return new Promise((resolve, reject) => {\n client.request(method, args, (err: any, response: any) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(response);\n });\n });\n };\n}\n\nfunction createRpcBatchRequest(client: RpcClient): RpcBatchRequest {\n return (requests: RpcParams[]) => {\n return new Promise((resolve, reject) => {\n // Do nothing if requests is empty\n if (requests.length === 0) resolve([]);\n\n const batch = requests.map((params: RpcParams) => {\n return client.request(params.methodName, params.args);\n });\n\n client.request(batch, (err: any, response: any) => {\n if (err) {\n reject(err);\n return;\n }\n resolve(response);\n });\n });\n };\n}\n\n/**\n * Expected JSON RPC response for the \"getInflationGovernor\" message\n */\nconst GetInflationGovernorRpcResult = jsonRpcResult(GetInflationGovernorResult);\n\n/**\n * Expected JSON RPC response for the \"getEpochInfo\" message\n */\nconst GetEpochInfoRpcResult = jsonRpcResult(GetEpochInfoResult);\n\n/**\n * Expected JSON RPC response for the \"getEpochSchedule\" message\n */\nconst GetEpochScheduleRpcResult = jsonRpcResult(GetEpochScheduleResult);\n\n/**\n * Expected JSON RPC response for the \"getLeaderSchedule\" message\n */\nconst GetLeaderScheduleRpcResult = jsonRpcResult(GetLeaderScheduleResult);\n\n/**\n * Expected JSON RPC response for the \"minimumLedgerSlot\" and \"getFirstAvailableBlock\" messages\n */\nconst SlotRpcResult = jsonRpcResult(number());\n\n/**\n * Supply\n */\nexport type Supply = {\n /** Total supply in lamports */\n total: number;\n /** Circulating supply in lamports */\n circulating: number;\n /** Non-circulating supply in lamports */\n nonCirculating: number;\n /** List of non-circulating account addresses */\n nonCirculatingAccounts: Array;\n};\n\n/**\n * Expected JSON RPC response for the \"getSupply\" message\n */\nconst GetSupplyRpcResult = jsonRpcResultAndContext(\n pick({\n total: number(),\n circulating: number(),\n nonCirculating: number(),\n nonCirculatingAccounts: array(PublicKeyFromString),\n }),\n);\n\n/**\n * Token amount object which returns a token amount in different formats\n * for various client use cases.\n */\nexport type TokenAmount = {\n /** Raw amount of tokens as string ignoring decimals */\n amount: string;\n /** Number of decimals configured for token's mint */\n decimals: number;\n /** Token amount as float, accounts for decimals */\n uiAmount: number | null;\n /** Token amount as string, accounts for decimals */\n uiAmountString?: string;\n};\n\n/**\n * Expected JSON RPC structure for token amounts\n */\nconst TokenAmountResult = pick({\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string()),\n});\n\n/**\n * Token address and balance.\n */\nexport type TokenAccountBalancePair = {\n /** Address of the token account */\n address: PublicKey;\n /** Raw amount of tokens as string ignoring decimals */\n amount: string;\n /** Number of decimals configured for token's mint */\n decimals: number;\n /** Token amount as float, accounts for decimals */\n uiAmount: number | null;\n /** Token amount as string, accounts for decimals */\n uiAmountString?: string;\n};\n\n/**\n * Expected JSON RPC response for the \"getTokenLargestAccounts\" message\n */\nconst GetTokenLargestAccountsResult = jsonRpcResultAndContext(\n array(\n pick({\n address: PublicKeyFromString,\n amount: string(),\n uiAmount: nullable(number()),\n decimals: number(),\n uiAmountString: optional(string()),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message\n */\nconst GetTokenAccountsByOwner = jsonRpcResultAndContext(\n array(\n pick({\n pubkey: PublicKeyFromString,\n account: pick({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number(),\n }),\n }),\n ),\n);\n\nconst ParsedAccountDataResult = pick({\n program: string(),\n parsed: unknown(),\n space: number(),\n});\n\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message with parsed data\n */\nconst GetParsedTokenAccountsByOwner = jsonRpcResultAndContext(\n array(\n pick({\n pubkey: PublicKeyFromString,\n account: pick({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedAccountDataResult,\n rentEpoch: number(),\n }),\n }),\n ),\n);\n\n/**\n * Pair of an account address and its balance\n */\nexport type AccountBalancePair = {\n address: PublicKey;\n lamports: number;\n};\n\n/**\n * Expected JSON RPC response for the \"getLargestAccounts\" message\n */\nconst GetLargestAccountsRpcResult = jsonRpcResultAndContext(\n array(\n pick({\n lamports: number(),\n address: PublicKeyFromString,\n }),\n ),\n);\n\n/**\n * @internal\n */\nconst AccountInfoResult = pick({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: BufferFromRawAccountData,\n rentEpoch: number(),\n});\n\n/**\n * @internal\n */\nconst KeyedAccountInfoResult = pick({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult,\n});\n\nconst ParsedOrRawAccountData = coerce(\n union([instance(Buffer), ParsedAccountDataResult]),\n union([RawAccountDataResult, ParsedAccountDataResult]),\n value => {\n if (Array.isArray(value)) {\n return create(value, BufferFromRawAccountData);\n } else {\n return value;\n }\n },\n);\n\n/**\n * @internal\n */\nconst ParsedAccountInfoResult = pick({\n executable: boolean(),\n owner: PublicKeyFromString,\n lamports: number(),\n data: ParsedOrRawAccountData,\n rentEpoch: number(),\n});\n\nconst KeyedParsedAccountInfoResult = pick({\n pubkey: PublicKeyFromString,\n account: ParsedAccountInfoResult,\n});\n\n/**\n * @internal\n */\nconst StakeActivationResult = pick({\n state: union([\n literal('active'),\n literal('inactive'),\n literal('activating'),\n literal('deactivating'),\n ]),\n active: number(),\n inactive: number(),\n});\n\n/**\n * Expected JSON RPC response for the \"getConfirmedSignaturesForAddress2\" message\n */\n\nconst GetConfirmedSignaturesForAddress2RpcResult = jsonRpcResult(\n array(\n pick({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number())),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"getSignaturesForAddress\" message\n */\nconst GetSignaturesForAddressRpcResult = jsonRpcResult(\n array(\n pick({\n signature: string(),\n slot: number(),\n err: TransactionErrorResult,\n memo: nullable(string()),\n blockTime: optional(nullable(number())),\n }),\n ),\n);\n\n/***\n * Expected JSON RPC response for the \"accountNotification\" message\n */\nconst AccountNotificationResult = pick({\n subscription: number(),\n result: notificationResultAndContext(AccountInfoResult),\n});\n\n/**\n * @internal\n */\nconst ProgramAccountInfoResult = pick({\n pubkey: PublicKeyFromString,\n account: AccountInfoResult,\n});\n\n/***\n * Expected JSON RPC response for the \"programNotification\" message\n */\nconst ProgramAccountNotificationResult = pick({\n subscription: number(),\n result: notificationResultAndContext(ProgramAccountInfoResult),\n});\n\n/**\n * @internal\n */\nconst SlotInfoResult = pick({\n parent: number(),\n slot: number(),\n root: number(),\n});\n\n/**\n * Expected JSON RPC response for the \"slotNotification\" message\n */\nconst SlotNotificationResult = pick({\n subscription: number(),\n result: SlotInfoResult,\n});\n\n/**\n * Slot updates which can be used for tracking the live progress of a cluster.\n * - `\"firstShredReceived\"`: connected node received the first shred of a block.\n * Indicates that a new block that is being produced.\n * - `\"completed\"`: connected node has received all shreds of a block. Indicates\n * a block was recently produced.\n * - `\"optimisticConfirmation\"`: block was optimistically confirmed by the\n * cluster. It is not guaranteed that an optimistic confirmation notification\n * will be sent for every finalized blocks.\n * - `\"root\"`: the connected node rooted this block.\n * - `\"createdBank\"`: the connected node has started validating this block.\n * - `\"frozen\"`: the connected node has validated this block.\n * - `\"dead\"`: the connected node failed to validate this block.\n */\nexport type SlotUpdate =\n | {\n type: 'firstShredReceived';\n slot: number;\n timestamp: number;\n }\n | {\n type: 'completed';\n slot: number;\n timestamp: number;\n }\n | {\n type: 'createdBank';\n slot: number;\n timestamp: number;\n parent: number;\n }\n | {\n type: 'frozen';\n slot: number;\n timestamp: number;\n stats: {\n numTransactionEntries: number;\n numSuccessfulTransactions: number;\n numFailedTransactions: number;\n maxTransactionsPerEntry: number;\n };\n }\n | {\n type: 'dead';\n slot: number;\n timestamp: number;\n err: string;\n }\n | {\n type: 'optimisticConfirmation';\n slot: number;\n timestamp: number;\n }\n | {\n type: 'root';\n slot: number;\n timestamp: number;\n };\n\n/**\n * @internal\n */\nconst SlotUpdateResult = union([\n pick({\n type: union([\n literal('firstShredReceived'),\n literal('completed'),\n literal('optimisticConfirmation'),\n literal('root'),\n ]),\n slot: number(),\n timestamp: number(),\n }),\n pick({\n type: literal('createdBank'),\n parent: number(),\n slot: number(),\n timestamp: number(),\n }),\n pick({\n type: literal('frozen'),\n slot: number(),\n timestamp: number(),\n stats: pick({\n numTransactionEntries: number(),\n numSuccessfulTransactions: number(),\n numFailedTransactions: number(),\n maxTransactionsPerEntry: number(),\n }),\n }),\n pick({\n type: literal('dead'),\n slot: number(),\n timestamp: number(),\n err: string(),\n }),\n]);\n\n/**\n * Expected JSON RPC response for the \"slotsUpdatesNotification\" message\n */\nconst SlotUpdateNotificationResult = pick({\n subscription: number(),\n result: SlotUpdateResult,\n});\n\n/**\n * Expected JSON RPC response for the \"signatureNotification\" message\n */\nconst SignatureNotificationResult = pick({\n subscription: number(),\n result: notificationResultAndContext(\n union([SignatureStatusResult, SignatureReceivedResult]),\n ),\n});\n\n/**\n * Expected JSON RPC response for the \"rootNotification\" message\n */\nconst RootNotificationResult = pick({\n subscription: number(),\n result: number(),\n});\n\nconst ContactInfoResult = pick({\n pubkey: string(),\n gossip: nullable(string()),\n tpu: nullable(string()),\n rpc: nullable(string()),\n version: nullable(string()),\n});\n\nconst VoteAccountInfoResult = pick({\n votePubkey: string(),\n nodePubkey: string(),\n activatedStake: number(),\n epochVoteAccount: boolean(),\n epochCredits: array(tuple([number(), number(), number()])),\n commission: number(),\n lastVote: number(),\n rootSlot: nullable(number()),\n});\n\n/**\n * Expected JSON RPC response for the \"getVoteAccounts\" message\n */\nconst GetVoteAccounts = jsonRpcResult(\n pick({\n current: array(VoteAccountInfoResult),\n delinquent: array(VoteAccountInfoResult),\n }),\n);\n\nconst ConfirmationStatus = union([\n literal('processed'),\n literal('confirmed'),\n literal('finalized'),\n]);\n\nconst SignatureStatusResponse = pick({\n slot: number(),\n confirmations: nullable(number()),\n err: TransactionErrorResult,\n confirmationStatus: optional(ConfirmationStatus),\n});\n\n/**\n * Expected JSON RPC response for the \"getSignatureStatuses\" message\n */\nconst GetSignatureStatusesRpcResult = jsonRpcResultAndContext(\n array(nullable(SignatureStatusResponse)),\n);\n\n/**\n * Expected JSON RPC response for the \"getMinimumBalanceForRentExemption\" message\n */\nconst GetMinimumBalanceForRentExemptionRpcResult = jsonRpcResult(number());\n\nconst ConfirmedTransactionResult = pick({\n signatures: array(string()),\n message: pick({\n accountKeys: array(string()),\n header: pick({\n numRequiredSignatures: number(),\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number(),\n }),\n instructions: array(\n pick({\n accounts: array(number()),\n data: string(),\n programIdIndex: number(),\n }),\n ),\n recentBlockhash: string(),\n }),\n});\n\nconst ParsedInstructionResult = pick({\n parsed: unknown(),\n program: string(),\n programId: PublicKeyFromString,\n});\n\nconst RawInstructionResult = pick({\n accounts: array(PublicKeyFromString),\n data: string(),\n programId: PublicKeyFromString,\n});\n\nconst InstructionResult = union([\n RawInstructionResult,\n ParsedInstructionResult,\n]);\n\nconst UnknownInstructionResult = union([\n pick({\n parsed: unknown(),\n program: string(),\n programId: string(),\n }),\n pick({\n accounts: array(string()),\n data: string(),\n programId: string(),\n }),\n]);\n\nconst ParsedOrRawInstruction = coerce(\n InstructionResult,\n UnknownInstructionResult,\n value => {\n if ('accounts' in value) {\n return create(value, RawInstructionResult);\n } else {\n return create(value, ParsedInstructionResult);\n }\n },\n);\n\n/**\n * @internal\n */\nconst ParsedConfirmedTransactionResult = pick({\n signatures: array(string()),\n message: pick({\n accountKeys: array(\n pick({\n pubkey: PublicKeyFromString,\n signer: boolean(),\n writable: boolean(),\n }),\n ),\n instructions: array(ParsedOrRawInstruction),\n recentBlockhash: string(),\n }),\n});\n\nconst TokenBalanceResult = pick({\n accountIndex: number(),\n mint: string(),\n owner: optional(string()),\n uiTokenAmount: TokenAmountResult,\n});\n\n/**\n * @internal\n */\nconst ConfirmedTransactionMetaResult = pick({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(\n nullable(\n array(\n pick({\n index: number(),\n instructions: array(\n pick({\n accounts: array(number()),\n data: string(),\n programIdIndex: number(),\n }),\n ),\n }),\n ),\n ),\n ),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n});\n\n/**\n * @internal\n */\nconst ParsedConfirmedTransactionMetaResult = pick({\n err: TransactionErrorResult,\n fee: number(),\n innerInstructions: optional(\n nullable(\n array(\n pick({\n index: number(),\n instructions: array(ParsedOrRawInstruction),\n }),\n ),\n ),\n ),\n preBalances: array(number()),\n postBalances: array(number()),\n logMessages: optional(nullable(array(string()))),\n preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n});\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\nconst GetBlockRpcResult = jsonRpcResult(\n nullable(\n pick({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(\n pick({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n }),\n ),\n rewards: optional(\n array(\n pick({\n pubkey: string(),\n lamports: number(),\n postBalance: nullable(number()),\n rewardType: nullable(string()),\n }),\n ),\n ),\n blockTime: nullable(number()),\n blockHeight: nullable(number()),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"getConfirmedBlock\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetBlockRpcResult} instead.\n */\nconst GetConfirmedBlockRpcResult = jsonRpcResult(\n nullable(\n pick({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n transactions: array(\n pick({\n transaction: ConfirmedTransactionResult,\n meta: nullable(ConfirmedTransactionMetaResult),\n }),\n ),\n rewards: optional(\n array(\n pick({\n pubkey: string(),\n lamports: number(),\n postBalance: nullable(number()),\n rewardType: nullable(string()),\n }),\n ),\n ),\n blockTime: nullable(number()),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\nconst GetBlockSignaturesRpcResult = jsonRpcResult(\n nullable(\n pick({\n blockhash: string(),\n previousBlockhash: string(),\n parentSlot: number(),\n signatures: array(string()),\n blockTime: nullable(number()),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"getTransaction\" message\n */\nconst GetTransactionRpcResult = jsonRpcResult(\n nullable(\n pick({\n slot: number(),\n meta: ConfirmedTransactionMetaResult,\n blockTime: optional(nullable(number())),\n transaction: ConfirmedTransactionResult,\n }),\n ),\n);\n\n/**\n * Expected parsed JSON RPC response for the \"getTransaction\" message\n */\nconst GetParsedTransactionRpcResult = jsonRpcResult(\n nullable(\n pick({\n slot: number(),\n transaction: ParsedConfirmedTransactionResult,\n meta: nullable(ParsedConfirmedTransactionMetaResult),\n blockTime: optional(nullable(number())),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"getRecentBlockhash\" message\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link GetLatestBlockhashRpcResult} instead.\n */\nconst GetRecentBlockhashAndContextRpcResult = jsonRpcResultAndContext(\n pick({\n blockhash: string(),\n feeCalculator: pick({\n lamportsPerSignature: number(),\n }),\n }),\n);\n\n/**\n * Expected JSON RPC response for the \"getLatestBlockhash\" message\n */\nconst GetLatestBlockhashRpcResult = jsonRpcResultAndContext(\n pick({\n blockhash: string(),\n lastValidBlockHeight: number(),\n }),\n);\n\nconst PerfSampleResult = pick({\n slot: number(),\n numTransactions: number(),\n numSlots: number(),\n samplePeriodSecs: number(),\n});\n\n/*\n * Expected JSON RPC response for \"getRecentPerformanceSamples\" message\n */\nconst GetRecentPerformanceSamplesRpcResult = jsonRpcResult(\n array(PerfSampleResult),\n);\n\n/**\n * Expected JSON RPC response for the \"getFeeCalculatorForBlockhash\" message\n */\nconst GetFeeCalculatorRpcResult = jsonRpcResultAndContext(\n nullable(\n pick({\n feeCalculator: pick({\n lamportsPerSignature: number(),\n }),\n }),\n ),\n);\n\n/**\n * Expected JSON RPC response for the \"requestAirdrop\" message\n */\nconst RequestAirdropRpcResult = jsonRpcResult(string());\n\n/**\n * Expected JSON RPC response for the \"sendTransaction\" message\n */\nconst SendTransactionRpcResult = jsonRpcResult(string());\n\n/**\n * Information about the latest slot being processed by a node\n */\nexport type SlotInfo = {\n /** Currently processing slot */\n slot: number;\n /** Parent of the current slot */\n parent: number;\n /** The root block of the current slot's fork */\n root: number;\n};\n\n/**\n * Parsed account data\n */\nexport type ParsedAccountData = {\n /** Name of the program that owns this account */\n program: string;\n /** Parsed account data */\n parsed: any;\n /** Space used by account data */\n space: number;\n};\n\n/**\n * Stake Activation data\n */\nexport type StakeActivationData = {\n /** the stake account's activation state */\n state: 'active' | 'inactive' | 'activating' | 'deactivating';\n /** stake active during the epoch */\n active: number;\n /** stake inactive during the epoch */\n inactive: number;\n};\n\n/**\n * Data slice argument for getProgramAccounts\n */\nexport type DataSlice = {\n /** offset of data slice */\n offset: number;\n /** length of data slice */\n length: number;\n};\n\n/**\n * Memory comparison filter for getProgramAccounts\n */\nexport type MemcmpFilter = {\n memcmp: {\n /** offset into program account data to start comparison */\n offset: number;\n /** data to match, as base-58 encoded string and limited to less than 129 bytes */\n bytes: string;\n };\n};\n\n/**\n * Data size comparison filter for getProgramAccounts\n */\nexport type DataSizeFilter = {\n /** Size of data for program account data length comparison */\n dataSize: number;\n};\n\n/**\n * A filter object for getProgramAccounts\n */\nexport type GetProgramAccountsFilter = MemcmpFilter | DataSizeFilter;\n\n/**\n * Configuration object for getProgramAccounts requests\n */\nexport type GetProgramAccountsConfig = {\n /** Optional commitment level */\n commitment?: Commitment;\n /** Optional encoding for account data (default base64)\n * To use \"jsonParsed\" encoding, please refer to `getParsedProgramAccounts` in connection.ts\n * */\n encoding?: 'base64';\n /** Optional data slice to limit the returned account data */\n dataSlice?: DataSlice;\n /** Optional array of filters to apply to accounts */\n filters?: GetProgramAccountsFilter[];\n};\n\n/**\n * Configuration object for getParsedProgramAccounts\n */\nexport type GetParsedProgramAccountsConfig = {\n /** Optional commitment level */\n commitment?: Commitment;\n /** Optional array of filters to apply to accounts */\n filters?: GetProgramAccountsFilter[];\n};\n\n/**\n * Configuration object for getMultipleAccounts\n */\nexport type GetMultipleAccountsConfig = {\n /** Optional commitment level */\n commitment?: Commitment;\n /** Optional encoding for account data (default base64) */\n encoding?: 'base64' | 'jsonParsed';\n};\n\n/**\n * Information describing an account\n */\nexport type AccountInfo = {\n /** `true` if this account's data contains a loaded program */\n executable: boolean;\n /** Identifier of the program that owns the account */\n owner: PublicKey;\n /** Number of lamports assigned to the account */\n lamports: number;\n /** Optional data assigned to the account */\n data: T;\n /** Optional rent epoch info for account */\n rentEpoch?: number;\n};\n\n/**\n * Account information identified by pubkey\n */\nexport type KeyedAccountInfo = {\n accountId: PublicKey;\n accountInfo: AccountInfo;\n};\n\n/**\n * Callback function for account change notifications\n */\nexport type AccountChangeCallback = (\n accountInfo: AccountInfo,\n context: Context,\n) => void;\n\n/**\n * @internal\n */\ntype SubscriptionId = 'subscribing' | number;\n\n/**\n * @internal\n */\ntype AccountSubscriptionInfo = {\n publicKey: string; // PublicKey of the account as a base 58 string\n callback: AccountChangeCallback;\n commitment?: Commitment;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n};\n\n/**\n * Callback function for program account change notifications\n */\nexport type ProgramAccountChangeCallback = (\n keyedAccountInfo: KeyedAccountInfo,\n context: Context,\n) => void;\n\n/**\n * @internal\n */\ntype ProgramAccountSubscriptionInfo = {\n programId: string; // PublicKey of the program as a base 58 string\n callback: ProgramAccountChangeCallback;\n commitment?: Commitment;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n filters?: GetProgramAccountsFilter[];\n};\n\n/**\n * Callback function for slot change notifications\n */\nexport type SlotChangeCallback = (slotInfo: SlotInfo) => void;\n\n/**\n * @internal\n */\ntype SlotSubscriptionInfo = {\n callback: SlotChangeCallback;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n};\n\n/**\n * Callback function for slot update notifications\n */\nexport type SlotUpdateCallback = (slotUpdate: SlotUpdate) => void;\n\n/**\n * @private\n */\ntype SlotUpdateSubscriptionInfo = {\n callback: SlotUpdateCallback;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n};\n\n/**\n * Callback function for signature status notifications\n */\nexport type SignatureResultCallback = (\n signatureResult: SignatureResult,\n context: Context,\n) => void;\n\n/**\n * Signature status notification with transaction result\n */\nexport type SignatureStatusNotification = {\n type: 'status';\n result: SignatureResult;\n};\n\n/**\n * Signature received notification\n */\nexport type SignatureReceivedNotification = {\n type: 'received';\n};\n\n/**\n * Callback function for signature notifications\n */\nexport type SignatureSubscriptionCallback = (\n notification: SignatureStatusNotification | SignatureReceivedNotification,\n context: Context,\n) => void;\n\n/**\n * Signature subscription options\n */\nexport type SignatureSubscriptionOptions = {\n commitment?: Commitment;\n enableReceivedNotification?: boolean;\n};\n\n/**\n * @internal\n */\ntype SignatureSubscriptionInfo = {\n signature: TransactionSignature; // TransactionSignature as a base 58 string\n callback: SignatureSubscriptionCallback;\n options?: SignatureSubscriptionOptions;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n};\n\n/**\n * Callback function for root change notifications\n */\nexport type RootChangeCallback = (root: number) => void;\n\n/**\n * @internal\n */\ntype RootSubscriptionInfo = {\n callback: RootChangeCallback;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n};\n\n/**\n * @internal\n */\nconst LogsResult = pick({\n err: TransactionErrorResult,\n logs: array(string()),\n signature: string(),\n});\n\n/**\n * Logs result.\n */\nexport type Logs = {\n err: TransactionError | null;\n logs: string[];\n signature: string;\n};\n\n/**\n * Expected JSON RPC response for the \"logsNotification\" message.\n */\nconst LogsNotificationResult = pick({\n result: notificationResultAndContext(LogsResult),\n subscription: number(),\n});\n\n/**\n * Filter for log subscriptions.\n */\nexport type LogsFilter = PublicKey | 'all' | 'allWithVotes';\n\n/**\n * Callback function for log notifications.\n */\nexport type LogsCallback = (logs: Logs, ctx: Context) => void;\n\n/**\n * @private\n */\ntype LogsSubscriptionInfo = {\n callback: LogsCallback;\n filter: LogsFilter;\n subscriptionId: SubscriptionId | null; // null when there's no current server subscription id\n commitment?: Commitment;\n};\n\n/**\n * Signature result\n */\nexport type SignatureResult = {\n err: TransactionError | null;\n};\n\n/**\n * Transaction error\n */\nexport type TransactionError = {} | string;\n\n/**\n * Transaction confirmation status\n *
\n *   'processed': Transaction landed in a block which has reached 1 confirmation by the connected node\n *   'confirmed': Transaction landed in a block which has reached 1 confirmation by the cluster\n *   'finalized': Transaction landed in a block which has been finalized by the cluster\n * 
\n */\nexport type TransactionConfirmationStatus =\n | 'processed'\n | 'confirmed'\n | 'finalized';\n\n/**\n * Signature status\n */\nexport type SignatureStatus = {\n /** when the transaction was processed */\n slot: number;\n /** the number of blocks that have been confirmed and voted on in the fork containing `slot` */\n confirmations: number | null;\n /** transaction error, if any */\n err: TransactionError | null;\n /** cluster confirmation status, if data available. Possible responses: `processed`, `confirmed`, `finalized` */\n confirmationStatus?: TransactionConfirmationStatus;\n};\n\n/**\n * A confirmed signature with its status\n */\nexport type ConfirmedSignatureInfo = {\n /** the transaction signature */\n signature: string;\n /** when the transaction was processed */\n slot: number;\n /** error, if any */\n err: TransactionError | null;\n /** memo associated with the transaction, if any */\n memo: string | null;\n /** The unix timestamp of when the transaction was processed */\n blockTime?: number | null;\n};\n\n/**\n * An object defining headers to be passed to the RPC server\n */\nexport type HttpHeaders = {[header: string]: string};\n\n/**\n * A callback used to augment the outgoing HTTP request\n */\nexport type FetchMiddleware = (\n url: string,\n options: any,\n fetch: (modifiedUrl: string, modifiedOptions: any) => void,\n) => void;\n\n/**\n * Configuration for instantiating a Connection\n */\nexport type ConnectionConfig = {\n /** Optional commitment level */\n commitment?: Commitment;\n /** Optional endpoint URL to the fullnode JSON RPC PubSub WebSocket Endpoint */\n wsEndpoint?: string;\n /** Optional HTTP headers object */\n httpHeaders?: HttpHeaders;\n /** Optional fetch middleware callback */\n fetchMiddleware?: FetchMiddleware;\n /** Optional Disable retring calls when server responds with HTTP 429 (Too Many Requests) */\n disableRetryOnRateLimit?: boolean;\n /** time to allow for the server to initially process a transaction (in milliseconds) */\n confirmTransactionInitialTimeout?: number;\n};\n\n/**\n * A connection to a fullnode JSON RPC endpoint\n */\nexport class Connection {\n /** @internal */ _commitment?: Commitment;\n /** @internal */ _confirmTransactionInitialTimeout?: number;\n /** @internal */ _rpcEndpoint: string;\n /** @internal */ _rpcWsEndpoint: string;\n /** @internal */ _rpcClient: RpcClient;\n /** @internal */ _rpcRequest: RpcRequest;\n /** @internal */ _rpcBatchRequest: RpcBatchRequest;\n /** @internal */ _rpcWebSocket: RpcWebSocketClient;\n /** @internal */ _rpcWebSocketConnected: boolean = false;\n /** @internal */ _rpcWebSocketHeartbeat: ReturnType<\n typeof setInterval\n > | null = null;\n /** @internal */ _rpcWebSocketIdleTimeout: ReturnType<\n typeof setTimeout\n > | null = null;\n\n /** @internal */ _disableBlockhashCaching: boolean = false;\n /** @internal */ _pollingBlockhash: boolean = false;\n /** @internal */ _blockhashInfo: {\n recentBlockhash: Blockhash | null;\n lastFetch: number;\n simulatedSignatures: Array;\n transactionSignatures: Array;\n } = {\n recentBlockhash: null,\n lastFetch: 0,\n transactionSignatures: [],\n simulatedSignatures: [],\n };\n\n /** @internal */ _accountChangeSubscriptionCounter: number = 0;\n /** @internal */ _accountChangeSubscriptions: {\n [id: number]: AccountSubscriptionInfo;\n } = {};\n\n /** @internal */ _programAccountChangeSubscriptionCounter: number = 0;\n /** @internal */ _programAccountChangeSubscriptions: {\n [id: number]: ProgramAccountSubscriptionInfo;\n } = {};\n\n /** @internal */ _rootSubscriptionCounter: number = 0;\n /** @internal */ _rootSubscriptions: {\n [id: number]: RootSubscriptionInfo;\n } = {};\n\n /** @internal */ _signatureSubscriptionCounter: number = 0;\n /** @internal */ _signatureSubscriptions: {\n [id: number]: SignatureSubscriptionInfo;\n } = {};\n\n /** @internal */ _slotSubscriptionCounter: number = 0;\n /** @internal */ _slotSubscriptions: {\n [id: number]: SlotSubscriptionInfo;\n } = {};\n\n /** @internal */ _logsSubscriptionCounter: number = 0;\n /** @internal */ _logsSubscriptions: {\n [id: number]: LogsSubscriptionInfo;\n } = {};\n\n /** @internal */ _slotUpdateSubscriptionCounter: number = 0;\n /** @internal */ _slotUpdateSubscriptions: {\n [id: number]: SlotUpdateSubscriptionInfo;\n } = {};\n\n /**\n * Establish a JSON RPC connection\n *\n * @param endpoint URL to the fullnode JSON RPC endpoint\n * @param commitmentOrConfig optional default commitment level or optional ConnectionConfig configuration object\n */\n constructor(\n endpoint: string,\n commitmentOrConfig?: Commitment | ConnectionConfig,\n ) {\n let url = new URL(endpoint);\n const useHttps = url.protocol === 'https:';\n\n let wsEndpoint;\n let httpHeaders;\n let fetchMiddleware;\n let disableRetryOnRateLimit;\n if (commitmentOrConfig && typeof commitmentOrConfig === 'string') {\n this._commitment = commitmentOrConfig;\n } else if (commitmentOrConfig) {\n this._commitment = commitmentOrConfig.commitment;\n this._confirmTransactionInitialTimeout =\n commitmentOrConfig.confirmTransactionInitialTimeout;\n wsEndpoint = commitmentOrConfig.wsEndpoint;\n httpHeaders = commitmentOrConfig.httpHeaders;\n fetchMiddleware = commitmentOrConfig.fetchMiddleware;\n disableRetryOnRateLimit = commitmentOrConfig.disableRetryOnRateLimit;\n }\n\n this._rpcEndpoint = endpoint;\n this._rpcWsEndpoint = wsEndpoint || makeWebsocketUrl(endpoint);\n\n this._rpcClient = createRpcClient(\n url.toString(),\n useHttps,\n httpHeaders,\n fetchMiddleware,\n disableRetryOnRateLimit,\n );\n this._rpcRequest = createRpcRequest(this._rpcClient);\n this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);\n\n this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {\n autoconnect: false,\n max_reconnects: Infinity,\n });\n this._rpcWebSocket.on('open', this._wsOnOpen.bind(this));\n this._rpcWebSocket.on('error', this._wsOnError.bind(this));\n this._rpcWebSocket.on('close', this._wsOnClose.bind(this));\n this._rpcWebSocket.on(\n 'accountNotification',\n this._wsOnAccountNotification.bind(this),\n );\n this._rpcWebSocket.on(\n 'programNotification',\n this._wsOnProgramAccountNotification.bind(this),\n );\n this._rpcWebSocket.on(\n 'slotNotification',\n this._wsOnSlotNotification.bind(this),\n );\n this._rpcWebSocket.on(\n 'slotsUpdatesNotification',\n this._wsOnSlotUpdatesNotification.bind(this),\n );\n this._rpcWebSocket.on(\n 'signatureNotification',\n this._wsOnSignatureNotification.bind(this),\n );\n this._rpcWebSocket.on(\n 'rootNotification',\n this._wsOnRootNotification.bind(this),\n );\n this._rpcWebSocket.on(\n 'logsNotification',\n this._wsOnLogsNotification.bind(this),\n );\n }\n\n /**\n * The default commitment used for requests\n */\n get commitment(): Commitment | undefined {\n return this._commitment;\n }\n\n /**\n * Fetch the balance for the specified public key, return with context\n */\n async getBalanceAndContext(\n publicKey: PublicKey,\n commitment?: Commitment,\n ): Promise> {\n const args = this._buildArgs([publicKey.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getBalance', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n if ('error' in res) {\n throw new Error(\n 'failed to get balance for ' +\n publicKey.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch the balance for the specified public key\n */\n async getBalance(\n publicKey: PublicKey,\n commitment?: Commitment,\n ): Promise {\n return await this.getBalanceAndContext(publicKey, commitment)\n .then(x => x.value)\n .catch(e => {\n throw new Error(\n 'failed to get balance of account ' + publicKey.toBase58() + ': ' + e,\n );\n });\n }\n\n /**\n * Fetch the estimated production time of a block\n */\n async getBlockTime(slot: number): Promise {\n const unsafeRes = await this._rpcRequest('getBlockTime', [slot]);\n const res = create(unsafeRes, jsonRpcResult(nullable(number())));\n if ('error' in res) {\n throw new Error(\n 'failed to get block time for slot ' + slot + ': ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch the lowest slot that the node has information about in its ledger.\n * This value may increase over time if the node is configured to purge older ledger data\n */\n async getMinimumLedgerSlot(): Promise {\n const unsafeRes = await this._rpcRequest('minimumLedgerSlot', []);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new Error(\n 'failed to get minimum ledger slot: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch the slot of the lowest confirmed block that has not been purged from the ledger\n */\n async getFirstAvailableBlock(): Promise {\n const unsafeRes = await this._rpcRequest('getFirstAvailableBlock', []);\n const res = create(unsafeRes, SlotRpcResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get first available block: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch information about the current supply\n */\n async getSupply(\n config?: GetSupplyConfig | Commitment,\n ): Promise> {\n let configArg: GetSupplyConfig = {};\n if (typeof config === 'string') {\n configArg = {commitment: config};\n } else if (config) {\n configArg = {\n ...config,\n commitment: (config && config.commitment) || this.commitment,\n };\n } else {\n configArg = {\n commitment: this.commitment,\n };\n }\n\n const unsafeRes = await this._rpcRequest('getSupply', [configArg]);\n const res = create(unsafeRes, GetSupplyRpcResult);\n if ('error' in res) {\n throw new Error('failed to get supply: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current supply of a token mint\n */\n async getTokenSupply(\n tokenMintAddress: PublicKey,\n commitment?: Commitment,\n ): Promise> {\n const args = this._buildArgs([tokenMintAddress.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getTokenSupply', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n if ('error' in res) {\n throw new Error('failed to get token supply: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current balance of a token account\n */\n async getTokenAccountBalance(\n tokenAddress: PublicKey,\n commitment?: Commitment,\n ): Promise> {\n const args = this._buildArgs([tokenAddress.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getTokenAccountBalance', args);\n const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n if ('error' in res) {\n throw new Error(\n 'failed to get token account balance: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch all the token accounts owned by the specified account\n *\n * @return {Promise}>>>}\n */\n async getTokenAccountsByOwner(\n ownerAddress: PublicKey,\n filter: TokenAccountsFilter,\n commitment?: Commitment,\n ): Promise<\n RpcResponseAndContext<\n Array<{pubkey: PublicKey; account: AccountInfo}>\n >\n > {\n let _args: any[] = [ownerAddress.toBase58()];\n if ('mint' in filter) {\n _args.push({mint: filter.mint.toBase58()});\n } else {\n _args.push({programId: filter.programId.toBase58()});\n }\n\n const args = this._buildArgs(_args, commitment, 'base64');\n const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n const res = create(unsafeRes, GetTokenAccountsByOwner);\n if ('error' in res) {\n throw new Error(\n 'failed to get token accounts owned by account ' +\n ownerAddress.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch parsed token accounts owned by the specified account\n *\n * @return {Promise}>>>}\n */\n async getParsedTokenAccountsByOwner(\n ownerAddress: PublicKey,\n filter: TokenAccountsFilter,\n commitment?: Commitment,\n ): Promise<\n RpcResponseAndContext<\n Array<{pubkey: PublicKey; account: AccountInfo}>\n >\n > {\n let _args: any[] = [ownerAddress.toBase58()];\n if ('mint' in filter) {\n _args.push({mint: filter.mint.toBase58()});\n } else {\n _args.push({programId: filter.programId.toBase58()});\n }\n\n const args = this._buildArgs(_args, commitment, 'jsonParsed');\n const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n const res = create(unsafeRes, GetParsedTokenAccountsByOwner);\n if ('error' in res) {\n throw new Error(\n 'failed to get token accounts owned by account ' +\n ownerAddress.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch the 20 largest accounts with their current balances\n */\n async getLargestAccounts(\n config?: GetLargestAccountsConfig,\n ): Promise>> {\n const arg = {\n ...config,\n commitment: (config && config.commitment) || this.commitment,\n };\n const args = arg.filter || arg.commitment ? [arg] : [];\n const unsafeRes = await this._rpcRequest('getLargestAccounts', args);\n const res = create(unsafeRes, GetLargestAccountsRpcResult);\n if ('error' in res) {\n throw new Error('failed to get largest accounts: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the 20 largest token accounts with their current balances\n * for a given mint.\n */\n async getTokenLargestAccounts(\n mintAddress: PublicKey,\n commitment?: Commitment,\n ): Promise>> {\n const args = this._buildArgs([mintAddress.toBase58()], commitment);\n const unsafeRes = await this._rpcRequest('getTokenLargestAccounts', args);\n const res = create(unsafeRes, GetTokenLargestAccountsResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get token largest accounts: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch all the account info for the specified public key, return with context\n */\n async getAccountInfoAndContext(\n publicKey: PublicKey,\n commitment?: Commitment,\n ): Promise | null>> {\n const args = this._buildArgs([publicKey.toBase58()], commitment, 'base64');\n const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n const res = create(\n unsafeRes,\n jsonRpcResultAndContext(nullable(AccountInfoResult)),\n );\n if ('error' in res) {\n throw new Error(\n 'failed to get info about account ' +\n publicKey.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch parsed account info for the specified public key\n */\n async getParsedAccountInfo(\n publicKey: PublicKey,\n commitment?: Commitment,\n ): Promise<\n RpcResponseAndContext | null>\n > {\n const args = this._buildArgs(\n [publicKey.toBase58()],\n commitment,\n 'jsonParsed',\n );\n const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n const res = create(\n unsafeRes,\n jsonRpcResultAndContext(nullable(ParsedAccountInfoResult)),\n );\n if ('error' in res) {\n throw new Error(\n 'failed to get info about account ' +\n publicKey.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch all the account info for the specified public key\n */\n async getAccountInfo(\n publicKey: PublicKey,\n commitment?: Commitment,\n ): Promise | null> {\n try {\n const res = await this.getAccountInfoAndContext(publicKey, commitment);\n return res.value;\n } catch (e) {\n throw new Error(\n 'failed to get info about account ' + publicKey.toBase58() + ': ' + e,\n );\n }\n }\n\n /**\n * Fetch all the account info for multiple accounts specified by an array of public keys\n */\n async getMultipleAccountsInfo(\n publicKeys: PublicKey[],\n configOrCommitment?: GetMultipleAccountsConfig | Commitment,\n ): Promise<(AccountInfo | null)[]> {\n const keys = publicKeys.map(key => key.toBase58());\n\n let commitment;\n let encoding: 'base64' | 'jsonParsed' = 'base64';\n if (configOrCommitment) {\n if (typeof configOrCommitment === 'string') {\n commitment = configOrCommitment;\n encoding = 'base64';\n } else {\n commitment = configOrCommitment.commitment;\n encoding = configOrCommitment.encoding || 'base64';\n }\n }\n\n const args = this._buildArgs([keys], commitment, encoding);\n const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n const res = create(\n unsafeRes,\n jsonRpcResultAndContext(array(nullable(ParsedAccountInfoResult))),\n );\n if ('error' in res) {\n throw new Error(\n 'failed to get info for accounts ' + keys + ': ' + res.error.message,\n );\n }\n return res.result.value;\n }\n\n /**\n * Returns epoch activation information for a stake account that has been delegated\n */\n async getStakeActivation(\n publicKey: PublicKey,\n commitment?: Commitment,\n epoch?: number,\n ): Promise {\n const args = this._buildArgs(\n [publicKey.toBase58()],\n commitment,\n undefined,\n epoch !== undefined ? {epoch} : undefined,\n );\n\n const unsafeRes = await this._rpcRequest('getStakeActivation', args);\n const res = create(unsafeRes, jsonRpcResult(StakeActivationResult));\n if ('error' in res) {\n throw new Error(\n `failed to get Stake Activation ${publicKey.toBase58()}: ${\n res.error.message\n }`,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n async getProgramAccounts(\n programId: PublicKey,\n configOrCommitment?: GetProgramAccountsConfig | Commitment,\n ): Promise}>> {\n const extra: Pick = {};\n\n let commitment;\n let encoding;\n if (configOrCommitment) {\n if (typeof configOrCommitment === 'string') {\n commitment = configOrCommitment;\n } else {\n commitment = configOrCommitment.commitment;\n encoding = configOrCommitment.encoding;\n\n if (configOrCommitment.dataSlice) {\n extra.dataSlice = configOrCommitment.dataSlice;\n }\n if (configOrCommitment.filters) {\n extra.filters = configOrCommitment.filters;\n }\n }\n }\n\n const args = this._buildArgs(\n [programId.toBase58()],\n commitment,\n encoding || 'base64',\n extra,\n );\n const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n const res = create(unsafeRes, jsonRpcResult(array(KeyedAccountInfoResult)));\n if ('error' in res) {\n throw new Error(\n 'failed to get accounts owned by program ' +\n programId.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch and parse all the accounts owned by the specified program id\n *\n * @return {Promise}>>}\n */\n async getParsedProgramAccounts(\n programId: PublicKey,\n configOrCommitment?: GetParsedProgramAccountsConfig | Commitment,\n ): Promise<\n Array<{\n pubkey: PublicKey;\n account: AccountInfo;\n }>\n > {\n const extra: Pick = {};\n\n let commitment;\n if (configOrCommitment) {\n if (typeof configOrCommitment === 'string') {\n commitment = configOrCommitment;\n } else {\n commitment = configOrCommitment.commitment;\n\n if (configOrCommitment.filters) {\n extra.filters = configOrCommitment.filters;\n }\n }\n }\n\n const args = this._buildArgs(\n [programId.toBase58()],\n commitment,\n 'jsonParsed',\n extra,\n );\n const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n const res = create(\n unsafeRes,\n jsonRpcResult(array(KeyedParsedAccountInfoResult)),\n );\n if ('error' in res) {\n throw new Error(\n 'failed to get accounts owned by program ' +\n programId.toBase58() +\n ': ' +\n res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Confirm the transaction identified by the specified signature.\n */\n async confirmTransaction(\n signature: TransactionSignature,\n commitment?: Commitment,\n ): Promise> {\n let decodedSignature;\n try {\n decodedSignature = bs58.decode(signature);\n } catch (err) {\n throw new Error('signature must be base58 encoded: ' + signature);\n }\n\n assert(decodedSignature.length === 64, 'signature has invalid length');\n\n const start = Date.now();\n const subscriptionCommitment = commitment || this.commitment;\n\n let subscriptionId;\n let response: RpcResponseAndContext | null = null;\n const confirmPromise = new Promise((resolve, reject) => {\n try {\n subscriptionId = this.onSignature(\n signature,\n (result: SignatureResult, context: Context) => {\n subscriptionId = undefined;\n response = {\n context,\n value: result,\n };\n resolve(null);\n },\n subscriptionCommitment,\n );\n } catch (err) {\n reject(err);\n }\n });\n\n let timeoutMs = this._confirmTransactionInitialTimeout || 60 * 1000;\n switch (subscriptionCommitment) {\n case 'processed':\n case 'recent':\n case 'single':\n case 'confirmed':\n case 'singleGossip': {\n timeoutMs = this._confirmTransactionInitialTimeout || 30 * 1000;\n break;\n }\n // exhaust enums to ensure full coverage\n case 'finalized':\n case 'max':\n case 'root':\n }\n\n try {\n await promiseTimeout(confirmPromise, timeoutMs);\n } finally {\n if (subscriptionId) {\n this.removeSignatureListener(subscriptionId);\n }\n }\n\n if (response === null) {\n const duration = (Date.now() - start) / 1000;\n throw new Error(\n `Transaction was not confirmed in ${duration.toFixed(\n 2,\n )} seconds. It is unknown if it succeeded or failed. Check signature ${signature} using the Solana Explorer or CLI tools.`,\n );\n }\n\n return response;\n }\n\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n async getClusterNodes(): Promise> {\n const unsafeRes = await this._rpcRequest('getClusterNodes', []);\n const res = create(unsafeRes, jsonRpcResult(array(ContactInfoResult)));\n if ('error' in res) {\n throw new Error('failed to get cluster nodes: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Return the list of nodes that are currently participating in the cluster\n */\n async getVoteAccounts(commitment?: Commitment): Promise {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getVoteAccounts', args);\n const res = create(unsafeRes, GetVoteAccounts);\n if ('error' in res) {\n throw new Error('failed to get vote accounts: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current slot that the node is processing\n */\n async getSlot(commitment?: Commitment): Promise {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getSlot', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new Error('failed to get slot: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current slot leader of the cluster\n */\n async getSlotLeader(commitment?: Commitment): Promise {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getSlotLeader', args);\n const res = create(unsafeRes, jsonRpcResult(string()));\n if ('error' in res) {\n throw new Error('failed to get slot leader: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch `limit` number of slot leaders starting from `startSlot`\n *\n * @param startSlot fetch slot leaders starting from this slot\n * @param limit number of slot leaders to return\n */\n async getSlotLeaders(\n startSlot: number,\n limit: number,\n ): Promise> {\n const args = [startSlot, limit];\n const unsafeRes = await this._rpcRequest('getSlotLeaders', args);\n const res = create(unsafeRes, jsonRpcResult(array(PublicKeyFromString)));\n if ('error' in res) {\n throw new Error('failed to get slot leaders: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current status of a signature\n */\n async getSignatureStatus(\n signature: TransactionSignature,\n config?: SignatureStatusConfig,\n ): Promise> {\n const {context, value: values} = await this.getSignatureStatuses(\n [signature],\n config,\n );\n assert(values.length === 1);\n const value = values[0];\n return {context, value};\n }\n\n /**\n * Fetch the current statuses of a batch of signatures\n */\n async getSignatureStatuses(\n signatures: Array,\n config?: SignatureStatusConfig,\n ): Promise>> {\n const params: any[] = [signatures];\n if (config) {\n params.push(config);\n }\n const unsafeRes = await this._rpcRequest('getSignatureStatuses', params);\n const res = create(unsafeRes, GetSignatureStatusesRpcResult);\n if ('error' in res) {\n throw new Error('failed to get signature status: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current transaction count of the cluster\n */\n async getTransactionCount(commitment?: Commitment): Promise {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getTransactionCount', args);\n const res = create(unsafeRes, jsonRpcResult(number()));\n if ('error' in res) {\n throw new Error('failed to get transaction count: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the current total currency supply of the cluster in lamports\n *\n * @deprecated Deprecated since v1.2.8. Please use {@link getSupply} instead.\n */\n async getTotalSupply(commitment?: Commitment): Promise {\n const result = await this.getSupply({\n commitment,\n excludeNonCirculatingAccountsList: true,\n });\n return result.value.total;\n }\n\n /**\n * Fetch the cluster InflationGovernor parameters\n */\n async getInflationGovernor(\n commitment?: Commitment,\n ): Promise {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getInflationGovernor', args);\n const res = create(unsafeRes, GetInflationGovernorRpcResult);\n if ('error' in res) {\n throw new Error('failed to get inflation: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the inflation reward for a list of addresses for an epoch\n */\n async getInflationReward(\n addresses: PublicKey[],\n epoch?: number,\n commitment?: Commitment,\n ): Promise<(InflationReward | null)[]> {\n const args = this._buildArgs(\n [addresses.map(pubkey => pubkey.toBase58())],\n commitment,\n undefined,\n {\n epoch,\n },\n );\n const unsafeRes = await this._rpcRequest('getInflationReward', args);\n const res = create(unsafeRes, GetInflationRewardResult);\n if ('error' in res) {\n throw new Error('failed to get inflation reward: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the Epoch Info parameters\n */\n async getEpochInfo(commitment?: Commitment): Promise {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getEpochInfo', args);\n const res = create(unsafeRes, GetEpochInfoRpcResult);\n if ('error' in res) {\n throw new Error('failed to get epoch info: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the Epoch Schedule parameters\n */\n async getEpochSchedule(): Promise {\n const unsafeRes = await this._rpcRequest('getEpochSchedule', []);\n const res = create(unsafeRes, GetEpochScheduleRpcResult);\n if ('error' in res) {\n throw new Error('failed to get epoch schedule: ' + res.error.message);\n }\n const epochSchedule = res.result;\n return new EpochSchedule(\n epochSchedule.slotsPerEpoch,\n epochSchedule.leaderScheduleSlotOffset,\n epochSchedule.warmup,\n epochSchedule.firstNormalEpoch,\n epochSchedule.firstNormalSlot,\n );\n }\n\n /**\n * Fetch the leader schedule for the current epoch\n * @return {Promise>}\n */\n async getLeaderSchedule(): Promise {\n const unsafeRes = await this._rpcRequest('getLeaderSchedule', []);\n const res = create(unsafeRes, GetLeaderScheduleRpcResult);\n if ('error' in res) {\n throw new Error('failed to get leader schedule: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the minimum balance needed to exempt an account of `dataLength`\n * size from rent\n */\n async getMinimumBalanceForRentExemption(\n dataLength: number,\n commitment?: Commitment,\n ): Promise {\n const args = this._buildArgs([dataLength], commitment);\n const unsafeRes = await this._rpcRequest(\n 'getMinimumBalanceForRentExemption',\n args,\n );\n const res = create(unsafeRes, GetMinimumBalanceForRentExemptionRpcResult);\n if ('error' in res) {\n console.warn('Unable to fetch minimum balance for rent exemption');\n return 0;\n }\n return res.result;\n }\n\n /**\n * Fetch a recent blockhash from the cluster, return with context\n * @return {Promise>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n async getRecentBlockhashAndContext(\n commitment?: Commitment,\n ): Promise<\n RpcResponseAndContext<{blockhash: Blockhash; feeCalculator: FeeCalculator}>\n > {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getRecentBlockhash', args);\n const res = create(unsafeRes, GetRecentBlockhashAndContextRpcResult);\n if ('error' in res) {\n throw new Error('failed to get recent blockhash: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch recent performance samples\n * @return {Promise>}\n */\n async getRecentPerformanceSamples(\n limit?: number,\n ): Promise> {\n const args = this._buildArgs(limit ? [limit] : []);\n const unsafeRes = await this._rpcRequest(\n 'getRecentPerformanceSamples',\n args,\n );\n const res = create(unsafeRes, GetRecentPerformanceSamplesRpcResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get recent performance samples: ' + res.error.message,\n );\n }\n\n return res.result;\n }\n\n /**\n * Fetch the fee calculator for a recent blockhash from the cluster, return with context\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getFeeForMessage} instead.\n */\n async getFeeCalculatorForBlockhash(\n blockhash: Blockhash,\n commitment?: Commitment,\n ): Promise> {\n const args = this._buildArgs([blockhash], commitment);\n const unsafeRes = await this._rpcRequest(\n 'getFeeCalculatorForBlockhash',\n args,\n );\n\n const res = create(unsafeRes, GetFeeCalculatorRpcResult);\n if ('error' in res) {\n throw new Error('failed to get fee calculator: ' + res.error.message);\n }\n const {context, value} = res.result;\n return {\n context,\n value: value !== null ? value.feeCalculator : null,\n };\n }\n\n /**\n * Fetch the fee for a message from the cluster, return with context\n */\n async getFeeForMessage(\n message: Message,\n commitment?: Commitment,\n ): Promise> {\n const wireMessage = message.serialize().toString('base64');\n const args = this._buildArgs([wireMessage], commitment);\n const unsafeRes = await this._rpcRequest('getFeeForMessage', args);\n\n const res = create(unsafeRes, jsonRpcResultAndContext(nullable(number())));\n if ('error' in res) {\n throw new Error('failed to get slot: ' + res.error.message);\n }\n if (res.result === null) {\n throw new Error('invalid blockhash');\n }\n return res.result as unknown as RpcResponseAndContext;\n }\n\n /**\n * Fetch a recent blockhash from the cluster\n * @return {Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>}\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getLatestBlockhash} instead.\n */\n async getRecentBlockhash(\n commitment?: Commitment,\n ): Promise<{blockhash: Blockhash; feeCalculator: FeeCalculator}> {\n try {\n const res = await this.getRecentBlockhashAndContext(commitment);\n return res.value;\n } catch (e) {\n throw new Error('failed to get recent blockhash: ' + e);\n }\n }\n\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise<{blockhash: Blockhash, lastValidBlockHeight: number}>}\n */\n async getLatestBlockhash(\n commitment?: Commitment,\n ): Promise<{blockhash: Blockhash; lastValidBlockHeight: number}> {\n try {\n const res = await this.getLatestBlockhashAndContext(commitment);\n return res.value;\n } catch (e) {\n throw new Error('failed to get recent blockhash: ' + e);\n }\n }\n\n /**\n * Fetch the latest blockhash from the cluster\n * @return {Promise<{blockhash: Blockhash, lastValidBlockHeight: number}>}\n */\n async getLatestBlockhashAndContext(\n commitment?: Commitment,\n ): Promise<\n RpcResponseAndContext<{blockhash: Blockhash; lastValidBlockHeight: number}>\n > {\n const args = this._buildArgs([], commitment);\n const unsafeRes = await this._rpcRequest('getLatestBlockhash', args);\n const res = create(unsafeRes, GetLatestBlockhashRpcResult);\n if ('error' in res) {\n throw new Error('failed to get latest blockhash: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the node version\n */\n async getVersion(): Promise {\n const unsafeRes = await this._rpcRequest('getVersion', []);\n const res = create(unsafeRes, jsonRpcResult(VersionResult));\n if ('error' in res) {\n throw new Error('failed to get version: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch the genesis hash\n */\n async getGenesisHash(): Promise {\n const unsafeRes = await this._rpcRequest('getGenesisHash', []);\n const res = create(unsafeRes, jsonRpcResult(string()));\n if ('error' in res) {\n throw new Error('failed to get genesis hash: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch a processed block from the cluster.\n */\n async getBlock(\n slot: number,\n opts?: {commitment?: Finality},\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed(\n [slot],\n opts && opts.commitment,\n );\n const unsafeRes = await this._rpcRequest('getBlock', args);\n const res = create(unsafeRes, GetBlockRpcResult);\n\n if ('error' in res) {\n throw new Error('failed to get confirmed block: ' + res.error.message);\n }\n\n const result = res.result;\n if (!result) return result;\n\n return {\n ...result,\n transactions: result.transactions.map(({transaction, meta}) => {\n const message = new Message(transaction.message);\n return {\n meta,\n transaction: {\n ...transaction,\n message,\n },\n };\n }),\n };\n }\n\n /**\n * Fetch a confirmed or finalized transaction from the cluster.\n */\n async getTransaction(\n signature: string,\n opts?: {commitment?: Finality},\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed(\n [signature],\n opts && opts.commitment,\n );\n const unsafeRes = await this._rpcRequest('getTransaction', args);\n const res = create(unsafeRes, GetTransactionRpcResult);\n if ('error' in res) {\n throw new Error('failed to get transaction: ' + res.error.message);\n }\n\n const result = res.result;\n if (!result) return result;\n\n return {\n ...result,\n transaction: {\n ...result.transaction,\n message: new Message(result.transaction.message),\n },\n };\n }\n\n /**\n * Fetch parsed transaction details for a confirmed or finalized transaction\n */\n async getParsedTransaction(\n signature: TransactionSignature,\n commitment?: Finality,\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed(\n [signature],\n commitment,\n 'jsonParsed',\n );\n const unsafeRes = await this._rpcRequest('getTransaction', args);\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new Error('failed to get transaction: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n */\n async getParsedTransactions(\n signatures: TransactionSignature[],\n commitment?: Finality,\n ): Promise<(ParsedConfirmedTransaction | null)[]> {\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed(\n [signature],\n commitment,\n 'jsonParsed',\n );\n return {\n methodName: 'getTransaction',\n args,\n };\n });\n\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map((unsafeRes: any) => {\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new Error('failed to get transactions: ' + res.error.message);\n }\n return res.result;\n });\n\n return res;\n }\n\n /**\n * Fetch a list of Transactions and transaction statuses from the cluster\n * for a confirmed block.\n *\n * @deprecated Deprecated since v1.13.0. Please use {@link getBlock} instead.\n */\n async getConfirmedBlock(\n slot: number,\n commitment?: Finality,\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed([slot], commitment);\n const unsafeRes = await this._rpcRequest('getConfirmedBlock', args);\n const res = create(unsafeRes, GetConfirmedBlockRpcResult);\n\n if ('error' in res) {\n throw new Error('failed to get confirmed block: ' + res.error.message);\n }\n\n const result = res.result;\n if (!result) {\n throw new Error('Confirmed block ' + slot + ' not found');\n }\n\n const block = {\n ...result,\n transactions: result.transactions.map(({transaction, meta}) => {\n const message = new Message(transaction.message);\n return {\n meta,\n transaction: {\n ...transaction,\n message,\n },\n };\n }),\n };\n\n return {\n ...block,\n transactions: block.transactions.map(({transaction, meta}) => {\n return {\n meta,\n transaction: Transaction.populate(\n transaction.message,\n transaction.signatures,\n ),\n };\n }),\n };\n }\n\n /**\n * Fetch confirmed blocks between two slots\n */\n async getBlocks(\n startSlot: number,\n endSlot?: number,\n commitment?: Finality,\n ): Promise> {\n const args = this._buildArgsAtLeastConfirmed(\n endSlot !== undefined ? [startSlot, endSlot] : [startSlot],\n commitment,\n );\n const unsafeRes = await this._rpcRequest('getBlocks', args);\n const res = create(unsafeRes, jsonRpcResult(array(number())));\n if ('error' in res) {\n throw new Error('failed to get blocks: ' + res.error.message);\n }\n return res.result;\n }\n\n /**\n * Fetch a list of Signatures from the cluster for a block, excluding rewards\n */\n async getBlockSignatures(\n slot: number,\n commitment?: Finality,\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed(\n [slot],\n commitment,\n undefined,\n {\n transactionDetails: 'signatures',\n rewards: false,\n },\n );\n const unsafeRes = await this._rpcRequest('getBlock', args);\n const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n if ('error' in res) {\n throw new Error('failed to get block: ' + res.error.message);\n }\n const result = res.result;\n if (!result) {\n throw new Error('Block ' + slot + ' not found');\n }\n return result;\n }\n\n /**\n * Fetch a list of Signatures from the cluster for a confirmed block, excluding rewards\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getBlockSignatures} instead.\n */\n async getConfirmedBlockSignatures(\n slot: number,\n commitment?: Finality,\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed(\n [slot],\n commitment,\n undefined,\n {\n transactionDetails: 'signatures',\n rewards: false,\n },\n );\n const unsafeRes = await this._rpcRequest('getConfirmedBlock', args);\n const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n if ('error' in res) {\n throw new Error('failed to get confirmed block: ' + res.error.message);\n }\n const result = res.result;\n if (!result) {\n throw new Error('Confirmed block ' + slot + ' not found');\n }\n return result;\n }\n\n /**\n * Fetch a transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getTransaction} instead.\n */\n async getConfirmedTransaction(\n signature: TransactionSignature,\n commitment?: Finality,\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed([signature], commitment);\n const unsafeRes = await this._rpcRequest('getConfirmedTransaction', args);\n const res = create(unsafeRes, GetTransactionRpcResult);\n if ('error' in res) {\n throw new Error('failed to get transaction: ' + res.error.message);\n }\n\n const result = res.result;\n if (!result) return result;\n\n const message = new Message(result.transaction.message);\n const signatures = result.transaction.signatures;\n return {\n ...result,\n transaction: Transaction.populate(message, signatures),\n };\n }\n\n /**\n * Fetch parsed transaction details for a confirmed transaction\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransaction} instead.\n */\n async getParsedConfirmedTransaction(\n signature: TransactionSignature,\n commitment?: Finality,\n ): Promise {\n const args = this._buildArgsAtLeastConfirmed(\n [signature],\n commitment,\n 'jsonParsed',\n );\n const unsafeRes = await this._rpcRequest('getConfirmedTransaction', args);\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get confirmed transaction: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch parsed transaction details for a batch of confirmed transactions\n *\n * @deprecated Deprecated since Solana v1.8.0. Please use {@link getParsedTransactions} instead.\n */\n async getParsedConfirmedTransactions(\n signatures: TransactionSignature[],\n commitment?: Finality,\n ): Promise<(ParsedConfirmedTransaction | null)[]> {\n const batch = signatures.map(signature => {\n const args = this._buildArgsAtLeastConfirmed(\n [signature],\n commitment,\n 'jsonParsed',\n );\n return {\n methodName: 'getConfirmedTransaction',\n args,\n };\n });\n\n const unsafeRes = await this._rpcBatchRequest(batch);\n const res = unsafeRes.map((unsafeRes: any) => {\n const res = create(unsafeRes, GetParsedTransactionRpcResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get confirmed transactions: ' + res.error.message,\n );\n }\n return res.result;\n });\n\n return res;\n }\n\n /**\n * Fetch a list of all the confirmed signatures for transactions involving an address\n * within a specified slot range. Max range allowed is 10,000 slots.\n *\n * @deprecated Deprecated since v1.3. Please use {@link getConfirmedSignaturesForAddress2} instead.\n *\n * @param address queried address\n * @param startSlot start slot, inclusive\n * @param endSlot end slot, inclusive\n */\n async getConfirmedSignaturesForAddress(\n address: PublicKey,\n startSlot: number,\n endSlot: number,\n ): Promise> {\n let options: any = {};\n\n let firstAvailableBlock = await this.getFirstAvailableBlock();\n while (!('until' in options)) {\n startSlot--;\n if (startSlot <= 0 || startSlot < firstAvailableBlock) {\n break;\n }\n\n try {\n const block = await this.getConfirmedBlockSignatures(\n startSlot,\n 'finalized',\n );\n if (block.signatures.length > 0) {\n options.until =\n block.signatures[block.signatures.length - 1].toString();\n }\n } catch (err) {\n if (err instanceof Error && err.message.includes('skipped')) {\n continue;\n } else {\n throw err;\n }\n }\n }\n\n let highestConfirmedRoot = await this.getSlot('finalized');\n while (!('before' in options)) {\n endSlot++;\n if (endSlot > highestConfirmedRoot) {\n break;\n }\n\n try {\n const block = await this.getConfirmedBlockSignatures(endSlot);\n if (block.signatures.length > 0) {\n options.before =\n block.signatures[block.signatures.length - 1].toString();\n }\n } catch (err) {\n if (err instanceof Error && err.message.includes('skipped')) {\n continue;\n } else {\n throw err;\n }\n }\n }\n\n const confirmedSignatureInfo = await this.getConfirmedSignaturesForAddress2(\n address,\n options,\n );\n return confirmedSignatureInfo.map(info => info.signature);\n }\n\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n async getConfirmedSignaturesForAddress2(\n address: PublicKey,\n options?: ConfirmedSignaturesForAddress2Options,\n commitment?: Finality,\n ): Promise> {\n const args = this._buildArgsAtLeastConfirmed(\n [address.toBase58()],\n commitment,\n undefined,\n options,\n );\n const unsafeRes = await this._rpcRequest(\n 'getConfirmedSignaturesForAddress2',\n args,\n );\n const res = create(unsafeRes, GetConfirmedSignaturesForAddress2RpcResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get confirmed signatures for address: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Returns confirmed signatures for transactions involving an\n * address backwards in time from the provided signature or most recent confirmed block\n *\n *\n * @param address queried address\n * @param options\n */\n async getSignaturesForAddress(\n address: PublicKey,\n options?: SignaturesForAddressOptions,\n commitment?: Finality,\n ): Promise> {\n const args = this._buildArgsAtLeastConfirmed(\n [address.toBase58()],\n commitment,\n undefined,\n options,\n );\n const unsafeRes = await this._rpcRequest('getSignaturesForAddress', args);\n const res = create(unsafeRes, GetSignaturesForAddressRpcResult);\n if ('error' in res) {\n throw new Error(\n 'failed to get signatures for address: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * Fetch the contents of a Nonce account from the cluster, return with context\n */\n async getNonceAndContext(\n nonceAccount: PublicKey,\n commitment?: Commitment,\n ): Promise> {\n const {context, value: accountInfo} = await this.getAccountInfoAndContext(\n nonceAccount,\n commitment,\n );\n\n let value = null;\n if (accountInfo !== null) {\n value = NonceAccount.fromAccountData(accountInfo.data);\n }\n\n return {\n context,\n value,\n };\n }\n\n /**\n * Fetch the contents of a Nonce account from the cluster\n */\n async getNonce(\n nonceAccount: PublicKey,\n commitment?: Commitment,\n ): Promise {\n return await this.getNonceAndContext(nonceAccount, commitment)\n .then(x => x.value)\n .catch(e => {\n throw new Error(\n 'failed to get nonce for account ' +\n nonceAccount.toBase58() +\n ': ' +\n e,\n );\n });\n }\n\n /**\n * Request an allocation of lamports to the specified address\n *\n * ```typescript\n * import { Connection, PublicKey, LAMPORTS_PER_SOL } from \"@solana/web3.js\";\n *\n * (async () => {\n * const connection = new Connection(\"https://api.testnet.solana.com\", \"confirmed\");\n * const myAddress = new PublicKey(\"2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM\");\n * const signature = await connection.requestAirdrop(myAddress, LAMPORTS_PER_SOL);\n * await connection.confirmTransaction(signature);\n * })();\n * ```\n */\n async requestAirdrop(\n to: PublicKey,\n lamports: number,\n ): Promise {\n const unsafeRes = await this._rpcRequest('requestAirdrop', [\n to.toBase58(),\n lamports,\n ]);\n const res = create(unsafeRes, RequestAirdropRpcResult);\n if ('error' in res) {\n throw new Error(\n 'airdrop to ' + to.toBase58() + ' failed: ' + res.error.message,\n );\n }\n return res.result;\n }\n\n /**\n * @internal\n */\n async _recentBlockhash(disableCache: boolean): Promise {\n if (!disableCache) {\n // Wait for polling to finish\n while (this._pollingBlockhash) {\n await sleep(100);\n }\n const timeSinceFetch = Date.now() - this._blockhashInfo.lastFetch;\n const expired = timeSinceFetch >= BLOCKHASH_CACHE_TIMEOUT_MS;\n if (this._blockhashInfo.recentBlockhash !== null && !expired) {\n return this._blockhashInfo.recentBlockhash;\n }\n }\n\n return await this._pollNewBlockhash();\n }\n\n /**\n * @internal\n */\n async _pollNewBlockhash(): Promise {\n this._pollingBlockhash = true;\n try {\n const startTime = Date.now();\n for (let i = 0; i < 50; i++) {\n const {blockhash} = await this.getRecentBlockhash('finalized');\n\n if (this._blockhashInfo.recentBlockhash != blockhash) {\n this._blockhashInfo = {\n recentBlockhash: blockhash,\n lastFetch: Date.now(),\n transactionSignatures: [],\n simulatedSignatures: [],\n };\n return blockhash;\n }\n\n // Sleep for approximately half a slot\n await sleep(MS_PER_SLOT / 2);\n }\n\n throw new Error(\n `Unable to obtain a new blockhash after ${Date.now() - startTime}ms`,\n );\n } finally {\n this._pollingBlockhash = false;\n }\n }\n\n /**\n * Simulate a transaction\n */\n async simulateTransaction(\n transactionOrMessage: Transaction | Message,\n signers?: Array,\n includeAccounts?: boolean | Array,\n ): Promise> {\n let transaction;\n if (transactionOrMessage instanceof Transaction) {\n transaction = transactionOrMessage;\n } else {\n transaction = Transaction.populate(transactionOrMessage);\n }\n\n if (transaction.nonceInfo && signers) {\n transaction.sign(...signers);\n } else {\n let disableCache = this._disableBlockhashCaching;\n for (;;) {\n transaction.recentBlockhash = await this._recentBlockhash(disableCache);\n\n if (!signers) break;\n\n transaction.sign(...signers);\n if (!transaction.signature) {\n throw new Error('!signature'); // should never happen\n }\n\n const signature = transaction.signature.toString('base64');\n if (\n !this._blockhashInfo.simulatedSignatures.includes(signature) &&\n !this._blockhashInfo.transactionSignatures.includes(signature)\n ) {\n // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n this._blockhashInfo.simulatedSignatures.push(signature);\n break;\n } else {\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n }\n }\n }\n\n const message = transaction._compile();\n const signData = message.serialize();\n const wireTransaction = transaction._serialize(signData);\n const encodedTransaction = wireTransaction.toString('base64');\n const config: any = {\n encoding: 'base64',\n commitment: this.commitment,\n };\n\n if (includeAccounts) {\n const addresses = (\n Array.isArray(includeAccounts)\n ? includeAccounts\n : message.nonProgramIds()\n ).map(key => key.toBase58());\n\n config['accounts'] = {\n encoding: 'base64',\n addresses,\n };\n }\n\n if (signers) {\n config.sigVerify = true;\n }\n\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n if ('error' in res) {\n let logs;\n if ('data' in res.error) {\n logs = res.error.data.logs;\n if (logs && Array.isArray(logs)) {\n const traceIndent = '\\n ';\n const logTrace = traceIndent + logs.join(traceIndent);\n console.error(res.error.message, logTrace);\n }\n }\n throw new SendTransactionError(\n 'failed to simulate transaction: ' + res.error.message,\n logs,\n );\n }\n return res.result;\n }\n\n /**\n * Sign and send a transaction\n */\n async sendTransaction(\n transaction: Transaction,\n signers: Array,\n options?: SendOptions,\n ): Promise {\n if (transaction.nonceInfo) {\n transaction.sign(...signers);\n } else {\n let disableCache = this._disableBlockhashCaching;\n for (;;) {\n transaction.recentBlockhash = await this._recentBlockhash(disableCache);\n transaction.sign(...signers);\n if (!transaction.signature) {\n throw new Error('!signature'); // should never happen\n }\n\n const signature = transaction.signature.toString('base64');\n if (!this._blockhashInfo.transactionSignatures.includes(signature)) {\n // The signature of this transaction has not been seen before with the\n // current recentBlockhash, all done. Let's break\n this._blockhashInfo.transactionSignatures.push(signature);\n break;\n } else {\n // This transaction would be treated as duplicate (its derived signature\n // matched to one of already recorded signatures).\n // So, we must fetch a new blockhash for a different signature by disabling\n // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n disableCache = true;\n }\n }\n }\n\n const wireTransaction = transaction.serialize();\n return await this.sendRawTransaction(wireTransaction, options);\n }\n\n /**\n * Send a transaction that has already been signed and serialized into the\n * wire format\n */\n async sendRawTransaction(\n rawTransaction: Buffer | Uint8Array | Array,\n options?: SendOptions,\n ): Promise {\n const encodedTransaction = toBuffer(rawTransaction).toString('base64');\n const result = await this.sendEncodedTransaction(\n encodedTransaction,\n options,\n );\n return result;\n }\n\n /**\n * Send a transaction that has already been signed, serialized into the\n * wire format, and encoded as a base64 string\n */\n async sendEncodedTransaction(\n encodedTransaction: string,\n options?: SendOptions,\n ): Promise {\n const config: any = {encoding: 'base64'};\n const skipPreflight = options && options.skipPreflight;\n const preflightCommitment =\n (options && options.preflightCommitment) || this.commitment;\n\n if (options && options.maxRetries) {\n config.maxRetries = options.maxRetries;\n }\n if (skipPreflight) {\n config.skipPreflight = skipPreflight;\n }\n if (preflightCommitment) {\n config.preflightCommitment = preflightCommitment;\n }\n\n const args = [encodedTransaction, config];\n const unsafeRes = await this._rpcRequest('sendTransaction', args);\n const res = create(unsafeRes, SendTransactionRpcResult);\n if ('error' in res) {\n let logs;\n if ('data' in res.error) {\n logs = res.error.data.logs;\n if (logs && Array.isArray(logs)) {\n const traceIndent = '\\n ';\n const logTrace = traceIndent + logs.join(traceIndent);\n console.error(res.error.message, logTrace);\n }\n }\n throw new SendTransactionError(\n 'failed to send transaction: ' + res.error.message,\n logs,\n );\n }\n return res.result;\n }\n\n /**\n * @internal\n */\n _wsOnOpen() {\n this._rpcWebSocketConnected = true;\n this._rpcWebSocketHeartbeat = setInterval(() => {\n // Ping server every 5s to prevent idle timeouts\n this._rpcWebSocket.notify('ping').catch(() => {});\n }, 5000);\n this._updateSubscriptions();\n }\n\n /**\n * @internal\n */\n _wsOnError(err: Error) {\n console.error('ws error:', err.message);\n }\n\n /**\n * @internal\n */\n _wsOnClose(code: number) {\n if (this._rpcWebSocketHeartbeat) {\n clearInterval(this._rpcWebSocketHeartbeat);\n this._rpcWebSocketHeartbeat = null;\n }\n\n if (code === 1000) {\n // explicit close, check if any subscriptions have been made since close\n this._updateSubscriptions();\n return;\n }\n\n // implicit close, prepare subscriptions for auto-reconnect\n this._resetSubscriptions();\n }\n\n /**\n * @internal\n */\n async _subscribe(\n sub: {subscriptionId: SubscriptionId | null},\n rpcMethod: string,\n rpcArgs: IWSRequestParams,\n ) {\n if (sub.subscriptionId == null) {\n sub.subscriptionId = 'subscribing';\n try {\n const id = await this._rpcWebSocket.call(rpcMethod, rpcArgs);\n if (typeof id === 'number' && sub.subscriptionId === 'subscribing') {\n // eslint-disable-next-line require-atomic-updates\n sub.subscriptionId = id;\n }\n } catch (err) {\n if (sub.subscriptionId === 'subscribing') {\n // eslint-disable-next-line require-atomic-updates\n sub.subscriptionId = null;\n }\n if (err instanceof Error) {\n console.error(\n `${rpcMethod} error for argument`,\n rpcArgs,\n err.message,\n );\n }\n }\n }\n }\n\n /**\n * @internal\n */\n async _unsubscribe(\n sub: {subscriptionId: SubscriptionId | null},\n rpcMethod: string,\n ) {\n const subscriptionId = sub.subscriptionId;\n if (subscriptionId != null && typeof subscriptionId != 'string') {\n const unsubscribeId: number = subscriptionId;\n try {\n await this._rpcWebSocket.call(rpcMethod, [unsubscribeId]);\n } catch (err) {\n if (err instanceof Error) {\n console.error(`${rpcMethod} error:`, err.message);\n }\n }\n }\n }\n\n /**\n * @internal\n */\n _resetSubscriptions() {\n Object.values(this._accountChangeSubscriptions).forEach(\n s => (s.subscriptionId = null),\n );\n Object.values(this._programAccountChangeSubscriptions).forEach(\n s => (s.subscriptionId = null),\n );\n Object.values(this._rootSubscriptions).forEach(\n s => (s.subscriptionId = null),\n );\n Object.values(this._signatureSubscriptions).forEach(\n s => (s.subscriptionId = null),\n );\n Object.values(this._slotSubscriptions).forEach(\n s => (s.subscriptionId = null),\n );\n Object.values(this._slotUpdateSubscriptions).forEach(\n s => (s.subscriptionId = null),\n );\n }\n\n /**\n * @internal\n */\n _updateSubscriptions() {\n const accountKeys = Object.keys(this._accountChangeSubscriptions).map(\n Number,\n );\n const programKeys = Object.keys(\n this._programAccountChangeSubscriptions,\n ).map(Number);\n const slotKeys = Object.keys(this._slotSubscriptions).map(Number);\n const slotUpdateKeys = Object.keys(this._slotUpdateSubscriptions).map(\n Number,\n );\n const signatureKeys = Object.keys(this._signatureSubscriptions).map(Number);\n const rootKeys = Object.keys(this._rootSubscriptions).map(Number);\n const logsKeys = Object.keys(this._logsSubscriptions).map(Number);\n if (\n accountKeys.length === 0 &&\n programKeys.length === 0 &&\n slotKeys.length === 0 &&\n slotUpdateKeys.length === 0 &&\n signatureKeys.length === 0 &&\n rootKeys.length === 0 &&\n logsKeys.length === 0\n ) {\n if (this._rpcWebSocketConnected) {\n this._rpcWebSocketConnected = false;\n this._rpcWebSocketIdleTimeout = setTimeout(() => {\n this._rpcWebSocketIdleTimeout = null;\n try {\n this._rpcWebSocket.close();\n } catch (err) {\n // swallow error if socket has already been closed.\n if (err instanceof Error) {\n console.log(\n `Error when closing socket connection: ${err.message}`,\n );\n }\n }\n }, 500);\n }\n return;\n }\n\n if (this._rpcWebSocketIdleTimeout !== null) {\n clearTimeout(this._rpcWebSocketIdleTimeout);\n this._rpcWebSocketIdleTimeout = null;\n this._rpcWebSocketConnected = true;\n }\n\n if (!this._rpcWebSocketConnected) {\n this._rpcWebSocket.connect();\n return;\n }\n\n for (let id of accountKeys) {\n const sub = this._accountChangeSubscriptions[id];\n this._subscribe(\n sub,\n 'accountSubscribe',\n this._buildArgs([sub.publicKey], sub.commitment, 'base64'),\n );\n }\n\n for (let id of programKeys) {\n const sub = this._programAccountChangeSubscriptions[id];\n this._subscribe(\n sub,\n 'programSubscribe',\n this._buildArgs([sub.programId], sub.commitment, 'base64', {\n filters: sub.filters,\n }),\n );\n }\n\n for (let id of slotKeys) {\n const sub = this._slotSubscriptions[id];\n this._subscribe(sub, 'slotSubscribe', []);\n }\n\n for (let id of slotUpdateKeys) {\n const sub = this._slotUpdateSubscriptions[id];\n this._subscribe(sub, 'slotsUpdatesSubscribe', []);\n }\n\n for (let id of signatureKeys) {\n const sub = this._signatureSubscriptions[id];\n const args: any[] = [sub.signature];\n if (sub.options) args.push(sub.options);\n this._subscribe(sub, 'signatureSubscribe', args);\n }\n\n for (let id of rootKeys) {\n const sub = this._rootSubscriptions[id];\n this._subscribe(sub, 'rootSubscribe', []);\n }\n\n for (let id of logsKeys) {\n const sub = this._logsSubscriptions[id];\n let filter;\n if (typeof sub.filter === 'object') {\n filter = {mentions: [sub.filter.toString()]};\n } else {\n filter = sub.filter;\n }\n this._subscribe(\n sub,\n 'logsSubscribe',\n this._buildArgs([filter], sub.commitment),\n );\n }\n }\n\n /**\n * @internal\n */\n _wsOnAccountNotification(notification: object) {\n const res = create(notification, AccountNotificationResult);\n for (const sub of Object.values(this._accountChangeSubscriptions)) {\n if (sub.subscriptionId === res.subscription) {\n sub.callback(res.result.value, res.result.context);\n return;\n }\n }\n }\n\n /**\n * Register a callback to be invoked whenever the specified account changes\n *\n * @param publicKey Public key of the account to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @return subscription id\n */\n onAccountChange(\n publicKey: PublicKey,\n callback: AccountChangeCallback,\n commitment?: Commitment,\n ): number {\n const id = ++this._accountChangeSubscriptionCounter;\n this._accountChangeSubscriptions[id] = {\n publicKey: publicKey.toBase58(),\n callback,\n commitment,\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister an account notification callback\n *\n * @param id subscription id to deregister\n */\n async removeAccountChangeListener(id: number): Promise {\n if (this._accountChangeSubscriptions[id]) {\n const subInfo = this._accountChangeSubscriptions[id];\n delete this._accountChangeSubscriptions[id];\n await this._unsubscribe(subInfo, 'accountUnsubscribe');\n this._updateSubscriptions();\n } else {\n throw new Error(`Unknown account change id: ${id}`);\n }\n }\n\n /**\n * @internal\n */\n _wsOnProgramAccountNotification(notification: Object) {\n const res = create(notification, ProgramAccountNotificationResult);\n for (const sub of Object.values(this._programAccountChangeSubscriptions)) {\n if (sub.subscriptionId === res.subscription) {\n const {value, context} = res.result;\n sub.callback(\n {\n accountId: value.pubkey,\n accountInfo: value.account,\n },\n context,\n );\n return;\n }\n }\n }\n\n /**\n * Register a callback to be invoked whenever accounts owned by the\n * specified program change\n *\n * @param programId Public key of the program to monitor\n * @param callback Function to invoke whenever the account is changed\n * @param commitment Specify the commitment level account changes must reach before notification\n * @param filters The program account filters to pass into the RPC method\n * @return subscription id\n */\n onProgramAccountChange(\n programId: PublicKey,\n callback: ProgramAccountChangeCallback,\n commitment?: Commitment,\n filters?: GetProgramAccountsFilter[],\n ): number {\n const id = ++this._programAccountChangeSubscriptionCounter;\n this._programAccountChangeSubscriptions[id] = {\n programId: programId.toBase58(),\n callback,\n commitment,\n subscriptionId: null,\n filters,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister an account notification callback\n *\n * @param id subscription id to deregister\n */\n async removeProgramAccountChangeListener(id: number): Promise {\n if (this._programAccountChangeSubscriptions[id]) {\n const subInfo = this._programAccountChangeSubscriptions[id];\n delete this._programAccountChangeSubscriptions[id];\n await this._unsubscribe(subInfo, 'programUnsubscribe');\n this._updateSubscriptions();\n } else {\n throw new Error(`Unknown program account change id: ${id}`);\n }\n }\n\n /**\n * Registers a callback to be invoked whenever logs are emitted.\n */\n onLogs(\n filter: LogsFilter,\n callback: LogsCallback,\n commitment?: Commitment,\n ): number {\n const id = ++this._logsSubscriptionCounter;\n this._logsSubscriptions[id] = {\n filter,\n callback,\n commitment,\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister a logs callback.\n *\n * @param id subscription id to deregister.\n */\n async removeOnLogsListener(id: number): Promise {\n if (!this._logsSubscriptions[id]) {\n throw new Error(`Unknown logs id: ${id}`);\n }\n const subInfo = this._logsSubscriptions[id];\n delete this._logsSubscriptions[id];\n await this._unsubscribe(subInfo, 'logsUnsubscribe');\n this._updateSubscriptions();\n }\n\n /**\n * @internal\n */\n _wsOnLogsNotification(notification: Object) {\n const res = create(notification, LogsNotificationResult);\n const keys = Object.keys(this._logsSubscriptions).map(Number);\n for (let id of keys) {\n const sub = this._logsSubscriptions[id];\n if (sub.subscriptionId === res.subscription) {\n sub.callback(res.result.value, res.result.context);\n return;\n }\n }\n }\n\n /**\n * @internal\n */\n _wsOnSlotNotification(notification: Object) {\n const res = create(notification, SlotNotificationResult);\n for (const sub of Object.values(this._slotSubscriptions)) {\n if (sub.subscriptionId === res.subscription) {\n sub.callback(res.result);\n return;\n }\n }\n }\n\n /**\n * Register a callback to be invoked upon slot changes\n *\n * @param callback Function to invoke whenever the slot changes\n * @return subscription id\n */\n onSlotChange(callback: SlotChangeCallback): number {\n const id = ++this._slotSubscriptionCounter;\n this._slotSubscriptions[id] = {\n callback,\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister a slot notification callback\n *\n * @param id subscription id to deregister\n */\n async removeSlotChangeListener(id: number): Promise {\n if (this._slotSubscriptions[id]) {\n const subInfo = this._slotSubscriptions[id];\n delete this._slotSubscriptions[id];\n await this._unsubscribe(subInfo, 'slotUnsubscribe');\n this._updateSubscriptions();\n } else {\n throw new Error(`Unknown slot change id: ${id}`);\n }\n }\n\n /**\n * @internal\n */\n _wsOnSlotUpdatesNotification(notification: Object) {\n const res = create(notification, SlotUpdateNotificationResult);\n for (const sub of Object.values(this._slotUpdateSubscriptions)) {\n if (sub.subscriptionId === res.subscription) {\n sub.callback(res.result);\n return;\n }\n }\n }\n\n /**\n * Register a callback to be invoked upon slot updates. {@link SlotUpdate}'s\n * may be useful to track live progress of a cluster.\n *\n * @param callback Function to invoke whenever the slot updates\n * @return subscription id\n */\n onSlotUpdate(callback: SlotUpdateCallback): number {\n const id = ++this._slotUpdateSubscriptionCounter;\n this._slotUpdateSubscriptions[id] = {\n callback,\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister a slot update notification callback\n *\n * @param id subscription id to deregister\n */\n async removeSlotUpdateListener(id: number): Promise {\n if (this._slotUpdateSubscriptions[id]) {\n const subInfo = this._slotUpdateSubscriptions[id];\n delete this._slotUpdateSubscriptions[id];\n await this._unsubscribe(subInfo, 'slotsUpdatesUnsubscribe');\n this._updateSubscriptions();\n } else {\n throw new Error(`Unknown slot update id: ${id}`);\n }\n }\n\n _buildArgs(\n args: Array,\n override?: Commitment,\n encoding?: 'jsonParsed' | 'base64',\n extra?: any,\n ): Array {\n const commitment = override || this._commitment;\n if (commitment || encoding || extra) {\n let options: any = {};\n if (encoding) {\n options.encoding = encoding;\n }\n if (commitment) {\n options.commitment = commitment;\n }\n if (extra) {\n options = Object.assign(options, extra);\n }\n args.push(options);\n }\n return args;\n }\n\n /**\n * @internal\n */\n _buildArgsAtLeastConfirmed(\n args: Array,\n override?: Finality,\n encoding?: 'jsonParsed' | 'base64',\n extra?: any,\n ): Array {\n const commitment = override || this._commitment;\n if (commitment && !['confirmed', 'finalized'].includes(commitment)) {\n throw new Error(\n 'Using Connection with default commitment: `' +\n this._commitment +\n '`, but method requires at least `confirmed`',\n );\n }\n return this._buildArgs(args, override, encoding, extra);\n }\n\n /**\n * @internal\n */\n _wsOnSignatureNotification(notification: Object) {\n const res = create(notification, SignatureNotificationResult);\n for (const [id, sub] of Object.entries(this._signatureSubscriptions)) {\n if (sub.subscriptionId === res.subscription) {\n if (res.result.value === 'receivedSignature') {\n sub.callback(\n {\n type: 'received',\n },\n res.result.context,\n );\n } else {\n // Signatures subscriptions are auto-removed by the RPC service so\n // no need to explicitly send an unsubscribe message\n delete this._signatureSubscriptions[Number(id)];\n this._updateSubscriptions();\n sub.callback(\n {\n type: 'status',\n result: res.result.value,\n },\n res.result.context,\n );\n }\n return;\n }\n }\n }\n\n /**\n * Register a callback to be invoked upon signature updates\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param commitment Specify the commitment level signature must reach before notification\n * @return subscription id\n */\n onSignature(\n signature: TransactionSignature,\n callback: SignatureResultCallback,\n commitment?: Commitment,\n ): number {\n const id = ++this._signatureSubscriptionCounter;\n this._signatureSubscriptions[id] = {\n signature,\n callback: (notification, context) => {\n if (notification.type === 'status') {\n callback(notification.result, context);\n }\n },\n options: {commitment},\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Register a callback to be invoked when a transaction is\n * received and/or processed.\n *\n * @param signature Transaction signature string in base 58\n * @param callback Function to invoke on signature notifications\n * @param options Enable received notifications and set the commitment\n * level that signature must reach before notification\n * @return subscription id\n */\n onSignatureWithOptions(\n signature: TransactionSignature,\n callback: SignatureSubscriptionCallback,\n options?: SignatureSubscriptionOptions,\n ): number {\n const id = ++this._signatureSubscriptionCounter;\n this._signatureSubscriptions[id] = {\n signature,\n callback,\n options,\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister a signature notification callback\n *\n * @param id subscription id to deregister\n */\n async removeSignatureListener(id: number): Promise {\n if (this._signatureSubscriptions[id]) {\n const subInfo = this._signatureSubscriptions[id];\n delete this._signatureSubscriptions[id];\n await this._unsubscribe(subInfo, 'signatureUnsubscribe');\n this._updateSubscriptions();\n } else {\n throw new Error(`Unknown signature result id: ${id}`);\n }\n }\n\n /**\n * @internal\n */\n _wsOnRootNotification(notification: Object) {\n const res = create(notification, RootNotificationResult);\n for (const sub of Object.values(this._rootSubscriptions)) {\n if (sub.subscriptionId === res.subscription) {\n sub.callback(res.result);\n return;\n }\n }\n }\n\n /**\n * Register a callback to be invoked upon root changes\n *\n * @param callback Function to invoke whenever the root changes\n * @return subscription id\n */\n onRootChange(callback: RootChangeCallback): number {\n const id = ++this._rootSubscriptionCounter;\n this._rootSubscriptions[id] = {\n callback,\n subscriptionId: null,\n };\n this._updateSubscriptions();\n return id;\n }\n\n /**\n * Deregister a root notification callback\n *\n * @param id subscription id to deregister\n */\n async removeRootChangeListener(id: number): Promise {\n if (this._rootSubscriptions[id]) {\n const subInfo = this._rootSubscriptions[id];\n delete this._rootSubscriptions[id];\n await this._unsubscribe(subInfo, 'rootUnsubscribe');\n this._updateSubscriptions();\n } else {\n throw new Error(`Unknown root change id: ${id}`);\n }\n }\n}\n","export function makeWebsocketUrl(endpoint: string) {\n let url = new URL(endpoint);\n const useHttps = url.protocol === 'https:';\n\n url.protocol = useHttps ? 'wss:' : 'ws:';\n url.host = '';\n\n // Only shift the port by +1 as a convention for ws(s) only if given endpoint\n // is explictly specifying the endpoint port (HTTP-based RPC), assuming\n // we're directly trying to connect to solana-validator's ws listening port.\n // When the endpoint omits the port, we're connecting to the protocol\n // default ports: http(80) or https(443) and it's assumed we're behind a reverse\n // proxy which manages WebSocket upgrade and backend port redirection.\n if (url.port !== '') {\n url.port = String(Number(url.port) + 1);\n }\n return url.toString();\n}\n","import nacl from 'tweetnacl';\n\nimport {PublicKey} from './publickey';\n\n/**\n * Keypair signer interface\n */\nexport interface Signer {\n publicKey: PublicKey;\n secretKey: Uint8Array;\n}\n\n/**\n * Ed25519 Keypair\n */\nexport interface Ed25519Keypair {\n publicKey: Uint8Array;\n secretKey: Uint8Array;\n}\n\n/**\n * An account keypair used for signing transactions.\n */\nexport class Keypair {\n private _keypair: Ed25519Keypair;\n\n /**\n * Create a new keypair instance.\n * Generate random keypair if no {@link Ed25519Keypair} is provided.\n *\n * @param keypair ed25519 keypair\n */\n constructor(keypair?: Ed25519Keypair) {\n if (keypair) {\n this._keypair = keypair;\n } else {\n this._keypair = nacl.sign.keyPair();\n }\n }\n\n /**\n * Generate a new random keypair\n */\n static generate(): Keypair {\n return new Keypair(nacl.sign.keyPair());\n }\n\n /**\n * Create a keypair from a raw secret key byte array.\n *\n * This method should only be used to recreate a keypair from a previously\n * generated secret key. Generating keypairs from a random seed should be done\n * with the {@link Keypair.fromSeed} method.\n *\n * @throws error if the provided secret key is invalid and validation is not skipped.\n *\n * @param secretKey secret key byte array\n * @param options: skip secret key validation\n */\n static fromSecretKey(\n secretKey: Uint8Array,\n options?: {skipValidation?: boolean},\n ): Keypair {\n const keypair = nacl.sign.keyPair.fromSecretKey(secretKey);\n if (!options || !options.skipValidation) {\n const encoder = new TextEncoder();\n const signData = encoder.encode('@solana/web3.js-validation-v1');\n const signature = nacl.sign.detached(signData, keypair.secretKey);\n if (!nacl.sign.detached.verify(signData, signature, keypair.publicKey)) {\n throw new Error('provided secretKey is invalid');\n }\n }\n return new Keypair(keypair);\n }\n\n /**\n * Generate a keypair from a 32 byte seed.\n *\n * @param seed seed byte array\n */\n static fromSeed(seed: Uint8Array): Keypair {\n return new Keypair(nacl.sign.keyPair.fromSeed(seed));\n }\n\n /**\n * The public key for this keypair\n */\n get publicKey(): PublicKey {\n return new PublicKey(this._keypair.publicKey);\n }\n\n /**\n * The raw secret key for this keypair\n */\n get secretKey(): Uint8Array {\n return this._keypair.secretKey;\n }\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\nimport nacl from 'tweetnacl';\n\nimport {Keypair} from './keypair';\nimport {PublicKey} from './publickey';\nimport {TransactionInstruction} from './transaction';\nimport assert from './util/assert';\n\nconst PRIVATE_KEY_BYTES = 64;\nconst PUBLIC_KEY_BYTES = 32;\nconst SIGNATURE_BYTES = 64;\n\n/**\n * Params for creating an ed25519 instruction using a public key\n */\nexport type CreateEd25519InstructionWithPublicKeyParams = {\n publicKey: Uint8Array;\n message: Uint8Array;\n signature: Uint8Array;\n instructionIndex?: number;\n};\n\n/**\n * Params for creating an ed25519 instruction using a private key\n */\nexport type CreateEd25519InstructionWithPrivateKeyParams = {\n privateKey: Uint8Array;\n message: Uint8Array;\n instructionIndex?: number;\n};\n\nconst ED25519_INSTRUCTION_LAYOUT = BufferLayout.struct([\n BufferLayout.u8('numSignatures'),\n BufferLayout.u8('padding'),\n BufferLayout.u16('signatureOffset'),\n BufferLayout.u16('signatureInstructionIndex'),\n BufferLayout.u16('publicKeyOffset'),\n BufferLayout.u16('publicKeyInstructionIndex'),\n BufferLayout.u16('messageDataOffset'),\n BufferLayout.u16('messageDataSize'),\n BufferLayout.u16('messageInstructionIndex'),\n]);\n\nexport class Ed25519Program {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the ed25519 program\n */\n static programId: PublicKey = new PublicKey(\n 'Ed25519SigVerify111111111111111111111111111',\n );\n\n /**\n * Create an ed25519 instruction with a public key and signature. The\n * public key must be a buffer that is 32 bytes long, and the signature\n * must be a buffer of 64 bytes.\n */\n static createInstructionWithPublicKey(\n params: CreateEd25519InstructionWithPublicKeyParams,\n ): TransactionInstruction {\n const {publicKey, message, signature, instructionIndex} = params;\n\n assert(\n publicKey.length === PUBLIC_KEY_BYTES,\n `Public Key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey.length} bytes`,\n );\n\n assert(\n signature.length === SIGNATURE_BYTES,\n `Signature must be ${SIGNATURE_BYTES} bytes but received ${signature.length} bytes`,\n );\n\n const publicKeyOffset = ED25519_INSTRUCTION_LAYOUT.span;\n const signatureOffset = publicKeyOffset + publicKey.length;\n const messageDataOffset = signatureOffset + signature.length;\n const numSignatures = 1;\n\n const instructionData = Buffer.alloc(messageDataOffset + message.length);\n\n ED25519_INSTRUCTION_LAYOUT.encode(\n {\n numSignatures,\n padding: 0,\n signatureOffset,\n signatureInstructionIndex: instructionIndex,\n publicKeyOffset,\n publicKeyInstructionIndex: instructionIndex,\n messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: instructionIndex,\n },\n instructionData,\n );\n\n instructionData.fill(publicKey, publicKeyOffset);\n instructionData.fill(signature, signatureOffset);\n instructionData.fill(message, messageDataOffset);\n\n return new TransactionInstruction({\n keys: [],\n programId: Ed25519Program.programId,\n data: instructionData,\n });\n }\n\n /**\n * Create an ed25519 instruction with a private key. The private key\n * must be a buffer that is 64 bytes long.\n */\n static createInstructionWithPrivateKey(\n params: CreateEd25519InstructionWithPrivateKeyParams,\n ): TransactionInstruction {\n const {privateKey, message, instructionIndex} = params;\n\n assert(\n privateKey.length === PRIVATE_KEY_BYTES,\n `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${privateKey.length} bytes`,\n );\n\n try {\n const keypair = Keypair.fromSecretKey(privateKey);\n const publicKey = keypair.publicKey.toBytes();\n const signature = nacl.sign.detached(message, keypair.secretKey);\n\n return this.createInstructionWithPublicKey({\n publicKey,\n message,\n signature,\n instructionIndex,\n });\n } catch (error) {\n throw new Error(`Error creating instruction; ${error}`);\n }\n }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {encodeData, decodeData, InstructionType} from './instruction';\nimport * as Layout from './layout';\nimport {PublicKey} from './publickey';\nimport {SystemProgram} from './system-program';\nimport {\n SYSVAR_CLOCK_PUBKEY,\n SYSVAR_RENT_PUBKEY,\n SYSVAR_STAKE_HISTORY_PUBKEY,\n} from './sysvar';\nimport {Transaction, TransactionInstruction} from './transaction';\nimport {toBuffer} from './util/to-buffer';\n\n/**\n * Address of the stake config account which configures the rate\n * of stake warmup and cooldown as well as the slashing penalty.\n */\nexport const STAKE_CONFIG_ID = new PublicKey(\n 'StakeConfig11111111111111111111111111111111',\n);\n\n/**\n * Stake account authority info\n */\nexport class Authorized {\n /** stake authority */\n staker: PublicKey;\n /** withdraw authority */\n withdrawer: PublicKey;\n\n /**\n * Create a new Authorized object\n * @param staker the stake authority\n * @param withdrawer the withdraw authority\n */\n constructor(staker: PublicKey, withdrawer: PublicKey) {\n this.staker = staker;\n this.withdrawer = withdrawer;\n }\n}\n\n/**\n * Stake account lockup info\n */\nexport class Lockup {\n /** Unix timestamp of lockup expiration */\n unixTimestamp: number;\n /** Epoch of lockup expiration */\n epoch: number;\n /** Lockup custodian authority */\n custodian: PublicKey;\n\n /**\n * Create a new Lockup object\n */\n constructor(unixTimestamp: number, epoch: number, custodian: PublicKey) {\n this.unixTimestamp = unixTimestamp;\n this.epoch = epoch;\n this.custodian = custodian;\n }\n\n /**\n * Default, inactive Lockup value\n */\n static default: Lockup = new Lockup(0, 0, PublicKey.default);\n}\n\n/**\n * Create stake account transaction params\n */\nexport type CreateStakeAccountParams = {\n /** Address of the account which will fund creation */\n fromPubkey: PublicKey;\n /** Address of the new stake account */\n stakePubkey: PublicKey;\n /** Authorities of the new stake account */\n authorized: Authorized;\n /** Lockup of the new stake account */\n lockup?: Lockup;\n /** Funding amount */\n lamports: number;\n};\n\n/**\n * Create stake account with seed transaction params\n */\nexport type CreateStakeAccountWithSeedParams = {\n fromPubkey: PublicKey;\n stakePubkey: PublicKey;\n basePubkey: PublicKey;\n seed: string;\n authorized: Authorized;\n lockup?: Lockup;\n lamports: number;\n};\n\n/**\n * Initialize stake instruction params\n */\nexport type InitializeStakeParams = {\n stakePubkey: PublicKey;\n authorized: Authorized;\n lockup?: Lockup;\n};\n\n/**\n * Delegate stake instruction params\n */\nexport type DelegateStakeParams = {\n stakePubkey: PublicKey;\n authorizedPubkey: PublicKey;\n votePubkey: PublicKey;\n};\n\n/**\n * Authorize stake instruction params\n */\nexport type AuthorizeStakeParams = {\n stakePubkey: PublicKey;\n authorizedPubkey: PublicKey;\n newAuthorizedPubkey: PublicKey;\n stakeAuthorizationType: StakeAuthorizationType;\n custodianPubkey?: PublicKey;\n};\n\n/**\n * Authorize stake instruction params using a derived key\n */\nexport type AuthorizeWithSeedStakeParams = {\n stakePubkey: PublicKey;\n authorityBase: PublicKey;\n authoritySeed: string;\n authorityOwner: PublicKey;\n newAuthorizedPubkey: PublicKey;\n stakeAuthorizationType: StakeAuthorizationType;\n custodianPubkey?: PublicKey;\n};\n\n/**\n * Split stake instruction params\n */\nexport type SplitStakeParams = {\n stakePubkey: PublicKey;\n authorizedPubkey: PublicKey;\n splitStakePubkey: PublicKey;\n lamports: number;\n};\n\n/**\n * Split with seed transaction params\n */\nexport type SplitStakeWithSeedParams = {\n stakePubkey: PublicKey;\n authorizedPubkey: PublicKey;\n splitStakePubkey: PublicKey;\n basePubkey: PublicKey;\n seed: string;\n lamports: number;\n};\n\n/**\n * Withdraw stake instruction params\n */\nexport type WithdrawStakeParams = {\n stakePubkey: PublicKey;\n authorizedPubkey: PublicKey;\n toPubkey: PublicKey;\n lamports: number;\n custodianPubkey?: PublicKey;\n};\n\n/**\n * Deactivate stake instruction params\n */\nexport type DeactivateStakeParams = {\n stakePubkey: PublicKey;\n authorizedPubkey: PublicKey;\n};\n\n/**\n * Merge stake instruction params\n */\nexport type MergeStakeParams = {\n stakePubkey: PublicKey;\n sourceStakePubKey: PublicKey;\n authorizedPubkey: PublicKey;\n};\n\n/**\n * Stake Instruction class\n */\nexport class StakeInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a stake instruction and retrieve the instruction type.\n */\n static decodeInstructionType(\n instruction: TransactionInstruction,\n ): StakeInstructionType {\n this.checkProgramId(instruction.programId);\n\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n let type: StakeInstructionType | undefined;\n for (const [ixType, layout] of Object.entries(STAKE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType as StakeInstructionType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a StakeInstruction');\n }\n\n return type;\n }\n\n /**\n * Decode a initialize stake instruction and retrieve the instruction params.\n */\n static decodeInitialize(\n instruction: TransactionInstruction,\n ): InitializeStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n const {authorized, lockup} = decodeData(\n STAKE_INSTRUCTION_LAYOUTS.Initialize,\n instruction.data,\n );\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorized: new Authorized(\n new PublicKey(authorized.staker),\n new PublicKey(authorized.withdrawer),\n ),\n lockup: new Lockup(\n lockup.unixTimestamp,\n lockup.epoch,\n new PublicKey(lockup.custodian),\n ),\n };\n }\n\n /**\n * Decode a delegate stake instruction and retrieve the instruction params.\n */\n static decodeDelegate(\n instruction: TransactionInstruction,\n ): DelegateStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 6);\n decodeData(STAKE_INSTRUCTION_LAYOUTS.Delegate, instruction.data);\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n votePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[5].pubkey,\n };\n }\n\n /**\n * Decode an authorize stake instruction and retrieve the instruction params.\n */\n static decodeAuthorize(\n instruction: TransactionInstruction,\n ): AuthorizeStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {newAuthorized, stakeAuthorizationType} = decodeData(\n STAKE_INSTRUCTION_LAYOUTS.Authorize,\n instruction.data,\n );\n\n const o: AuthorizeStakeParams = {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType,\n },\n };\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n return o;\n }\n\n /**\n * Decode an authorize-with-seed stake instruction and retrieve the instruction params.\n */\n static decodeAuthorizeWithSeed(\n instruction: TransactionInstruction,\n ): AuthorizeWithSeedStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 2);\n\n const {\n newAuthorized,\n stakeAuthorizationType,\n authoritySeed,\n authorityOwner,\n } = decodeData(\n STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed,\n instruction.data,\n );\n\n const o: AuthorizeWithSeedStakeParams = {\n stakePubkey: instruction.keys[0].pubkey,\n authorityBase: instruction.keys[1].pubkey,\n authoritySeed: authoritySeed,\n authorityOwner: new PublicKey(authorityOwner),\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n stakeAuthorizationType: {\n index: stakeAuthorizationType,\n },\n };\n if (instruction.keys.length > 3) {\n o.custodianPubkey = instruction.keys[3].pubkey;\n }\n return o;\n }\n\n /**\n * Decode a split stake instruction and retrieve the instruction params.\n */\n static decodeSplit(instruction: TransactionInstruction): SplitStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n const {lamports} = decodeData(\n STAKE_INSTRUCTION_LAYOUTS.Split,\n instruction.data,\n );\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n splitStakePubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n lamports,\n };\n }\n\n /**\n * Decode a merge stake instruction and retrieve the instruction params.\n */\n static decodeMerge(instruction: TransactionInstruction): MergeStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData(STAKE_INSTRUCTION_LAYOUTS.Merge, instruction.data);\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n sourceStakePubKey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n };\n }\n\n /**\n * Decode a withdraw stake instruction and retrieve the instruction params.\n */\n static decodeWithdraw(\n instruction: TransactionInstruction,\n ): WithdrawStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 5);\n const {lamports} = decodeData(\n STAKE_INSTRUCTION_LAYOUTS.Withdraw,\n instruction.data,\n );\n\n const o: WithdrawStakeParams = {\n stakePubkey: instruction.keys[0].pubkey,\n toPubkey: instruction.keys[1].pubkey,\n authorizedPubkey: instruction.keys[4].pubkey,\n lamports,\n };\n if (instruction.keys.length > 5) {\n o.custodianPubkey = instruction.keys[5].pubkey;\n }\n return o;\n }\n\n /**\n * Decode a deactivate stake instruction and retrieve the instruction params.\n */\n static decodeDeactivate(\n instruction: TransactionInstruction,\n ): DeactivateStakeParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n decodeData(STAKE_INSTRUCTION_LAYOUTS.Deactivate, instruction.data);\n\n return {\n stakePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId: PublicKey) {\n if (!programId.equals(StakeProgram.programId)) {\n throw new Error('invalid instruction; programId is not StakeProgram');\n }\n }\n\n /**\n * @internal\n */\n static checkKeyLength(keys: Array, expectedLength: number) {\n if (keys.length < expectedLength) {\n throw new Error(\n `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n );\n }\n }\n}\n\n/**\n * An enumeration of valid StakeInstructionType's\n */\nexport type StakeInstructionType =\n | 'AuthorizeWithSeed'\n | 'Authorize'\n | 'Deactivate'\n | 'Delegate'\n | 'Initialize'\n | 'Split'\n | 'Withdraw'\n | 'Merge';\n\n/**\n * An enumeration of valid stake InstructionType's\n * @internal\n */\nexport const STAKE_INSTRUCTION_LAYOUTS: {\n [type in StakeInstructionType]: InstructionType;\n} = Object.freeze({\n Initialize: {\n index: 0,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.authorized(),\n Layout.lockup(),\n ]),\n },\n Authorize: {\n index: 1,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('newAuthorized'),\n BufferLayout.u32('stakeAuthorizationType'),\n ]),\n },\n Delegate: {\n index: 2,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')]),\n },\n Split: {\n index: 3,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n ]),\n },\n Withdraw: {\n index: 4,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n ]),\n },\n Deactivate: {\n index: 5,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')]),\n },\n Merge: {\n index: 7,\n layout: BufferLayout.struct([BufferLayout.u32('instruction')]),\n },\n AuthorizeWithSeed: {\n index: 8,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('newAuthorized'),\n BufferLayout.u32('stakeAuthorizationType'),\n Layout.rustString('authoritySeed'),\n Layout.publicKey('authorityOwner'),\n ]),\n },\n});\n\n/**\n * Stake authorization type\n */\nexport type StakeAuthorizationType = {\n /** The Stake Authorization index (from solana-stake-program) */\n index: number;\n};\n\n/**\n * An enumeration of valid StakeAuthorizationLayout's\n */\nexport const StakeAuthorizationLayout = Object.freeze({\n Staker: {\n index: 0,\n },\n Withdrawer: {\n index: 1,\n },\n});\n\n/**\n * Factory class for transactions to interact with the Stake program\n */\nexport class StakeProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the Stake program\n */\n static programId: PublicKey = new PublicKey(\n 'Stake11111111111111111111111111111111111111',\n );\n\n /**\n * Max space of a Stake account\n *\n * This is generated from the solana-stake-program StakeState struct as\n * `std::mem::size_of::()`:\n * https://docs.rs/solana-stake-program/1.4.4/solana_stake_program/stake_state/enum.StakeState.html\n */\n static space: number = 200;\n\n /**\n * Generate an Initialize instruction to add to a Stake Create transaction\n */\n static initialize(params: InitializeStakeParams): TransactionInstruction {\n const {stakePubkey, authorized, lockup: maybeLockup} = params;\n const lockup: Lockup = maybeLockup || Lockup.default;\n const type = STAKE_INSTRUCTION_LAYOUTS.Initialize;\n const data = encodeData(type, {\n authorized: {\n staker: toBuffer(authorized.staker.toBuffer()),\n withdrawer: toBuffer(authorized.withdrawer.toBuffer()),\n },\n lockup: {\n unixTimestamp: lockup.unixTimestamp,\n epoch: lockup.epoch,\n custodian: toBuffer(lockup.custodian.toBuffer()),\n },\n });\n const instructionData = {\n keys: [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ],\n programId: this.programId,\n data,\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate a Transaction that creates a new Stake account at\n * an address generated with `from`, a seed, and the Stake programId\n */\n static createAccountWithSeed(\n params: CreateStakeAccountWithSeedParams,\n ): Transaction {\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccountWithSeed({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n basePubkey: params.basePubkey,\n seed: params.seed,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId,\n }),\n );\n\n const {stakePubkey, authorized, lockup} = params;\n return transaction.add(this.initialize({stakePubkey, authorized, lockup}));\n }\n\n /**\n * Generate a Transaction that creates a new Stake account\n */\n static createAccount(params: CreateStakeAccountParams): Transaction {\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.stakePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId,\n }),\n );\n\n const {stakePubkey, authorized, lockup} = params;\n return transaction.add(this.initialize({stakePubkey, authorized, lockup}));\n }\n\n /**\n * Generate a Transaction that delegates Stake tokens to a validator\n * Vote PublicKey. This transaction can also be used to redelegate Stake\n * to a new validator Vote PublicKey.\n */\n static delegate(params: DelegateStakeParams): Transaction {\n const {stakePubkey, authorizedPubkey, votePubkey} = params;\n\n const type = STAKE_INSTRUCTION_LAYOUTS.Delegate;\n const data = encodeData(type);\n\n return new Transaction().add({\n keys: [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: votePubkey, isSigner: false, isWritable: false},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false},\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n static authorize(params: AuthorizeStakeParams): Transaction {\n const {\n stakePubkey,\n authorizedPubkey,\n newAuthorizedPubkey,\n stakeAuthorizationType,\n custodianPubkey,\n } = params;\n\n const type = STAKE_INSTRUCTION_LAYOUTS.Authorize;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index,\n });\n\n const keys = [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: true},\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ];\n if (custodianPubkey) {\n keys.push({pubkey: custodianPubkey, isSigner: false, isWritable: false});\n }\n return new Transaction().add({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a Transaction that authorizes a new PublicKey as Staker\n * or Withdrawer on the Stake account.\n */\n static authorizeWithSeed(params: AuthorizeWithSeedStakeParams): Transaction {\n const {\n stakePubkey,\n authorityBase,\n authoritySeed,\n authorityOwner,\n newAuthorizedPubkey,\n stakeAuthorizationType,\n custodianPubkey,\n } = params;\n\n const type = STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n stakeAuthorizationType: stakeAuthorizationType.index,\n authoritySeed: authoritySeed,\n authorityOwner: toBuffer(authorityOwner.toBuffer()),\n });\n\n const keys = [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: authorityBase, isSigner: true, isWritable: false},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n ];\n if (custodianPubkey) {\n keys.push({pubkey: custodianPubkey, isSigner: false, isWritable: false});\n }\n return new Transaction().add({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * @internal\n */\n static splitInstruction(params: SplitStakeParams): TransactionInstruction {\n const {stakePubkey, authorizedPubkey, splitStakePubkey, lamports} = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Split;\n const data = encodeData(type, {lamports});\n return new TransactionInstruction({\n keys: [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: splitStakePubkey, isSigner: false, isWritable: true},\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a Transaction that splits Stake tokens into another stake account\n */\n static split(params: SplitStakeParams): Transaction {\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: params.authorizedPubkey,\n newAccountPubkey: params.splitStakePubkey,\n lamports: 0,\n space: this.space,\n programId: this.programId,\n }),\n );\n return transaction.add(this.splitInstruction(params));\n }\n\n /**\n * Generate a Transaction that splits Stake tokens into another account\n * derived from a base public key and seed\n */\n static splitWithSeed(params: SplitStakeWithSeedParams): Transaction {\n const {\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n basePubkey,\n seed,\n lamports,\n } = params;\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.allocate({\n accountPubkey: splitStakePubkey,\n basePubkey,\n seed,\n space: this.space,\n programId: this.programId,\n }),\n );\n return transaction.add(\n this.splitInstruction({\n stakePubkey,\n authorizedPubkey,\n splitStakePubkey,\n lamports,\n }),\n );\n }\n\n /**\n * Generate a Transaction that merges Stake accounts.\n */\n static merge(params: MergeStakeParams): Transaction {\n const {stakePubkey, sourceStakePubKey, authorizedPubkey} = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Merge;\n const data = encodeData(type);\n\n return new Transaction().add({\n keys: [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: sourceStakePubKey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a Transaction that withdraws deactivated Stake tokens.\n */\n static withdraw(params: WithdrawStakeParams): Transaction {\n const {stakePubkey, authorizedPubkey, toPubkey, lamports, custodianPubkey} =\n params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Withdraw;\n const data = encodeData(type, {lamports});\n\n const keys = [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: toPubkey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n {\n pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n isSigner: false,\n isWritable: false,\n },\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ];\n if (custodianPubkey) {\n keys.push({pubkey: custodianPubkey, isSigner: false, isWritable: false});\n }\n return new Transaction().add({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a Transaction that deactivates Stake tokens.\n */\n static deactivate(params: DeactivateStakeParams): Transaction {\n const {stakePubkey, authorizedPubkey} = params;\n const type = STAKE_INSTRUCTION_LAYOUTS.Deactivate;\n const data = encodeData(type);\n\n return new Transaction().add({\n keys: [\n {pubkey: stakePubkey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n });\n }\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\nimport secp256k1 from 'secp256k1';\nimport sha3 from 'js-sha3';\n\nimport {PublicKey} from './publickey';\nimport {TransactionInstruction} from './transaction';\nimport assert from './util/assert';\nimport {toBuffer} from './util/to-buffer';\n\nconst {publicKeyCreate, ecdsaSign} = secp256k1;\n\nconst PRIVATE_KEY_BYTES = 32;\nconst ETHEREUM_ADDRESS_BYTES = 20;\nconst PUBLIC_KEY_BYTES = 64;\nconst SIGNATURE_OFFSETS_SERIALIZED_SIZE = 11;\n\n/**\n * Params for creating an secp256k1 instruction using a public key\n */\nexport type CreateSecp256k1InstructionWithPublicKeyParams = {\n publicKey: Buffer | Uint8Array | Array;\n message: Buffer | Uint8Array | Array;\n signature: Buffer | Uint8Array | Array;\n recoveryId: number;\n instructionIndex?: number;\n};\n\n/**\n * Params for creating an secp256k1 instruction using an Ethereum address\n */\nexport type CreateSecp256k1InstructionWithEthAddressParams = {\n ethAddress: Buffer | Uint8Array | Array | string;\n message: Buffer | Uint8Array | Array;\n signature: Buffer | Uint8Array | Array;\n recoveryId: number;\n instructionIndex?: number;\n};\n\n/**\n * Params for creating an secp256k1 instruction using a private key\n */\nexport type CreateSecp256k1InstructionWithPrivateKeyParams = {\n privateKey: Buffer | Uint8Array | Array;\n message: Buffer | Uint8Array | Array;\n instructionIndex?: number;\n};\n\nconst SECP256K1_INSTRUCTION_LAYOUT = BufferLayout.struct([\n BufferLayout.u8('numSignatures'),\n BufferLayout.u16('signatureOffset'),\n BufferLayout.u8('signatureInstructionIndex'),\n BufferLayout.u16('ethAddressOffset'),\n BufferLayout.u8('ethAddressInstructionIndex'),\n BufferLayout.u16('messageDataOffset'),\n BufferLayout.u16('messageDataSize'),\n BufferLayout.u8('messageInstructionIndex'),\n BufferLayout.blob(20, 'ethAddress'),\n BufferLayout.blob(64, 'signature'),\n BufferLayout.u8('recoveryId'),\n]);\n\nexport class Secp256k1Program {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the secp256k1 program\n */\n static programId: PublicKey = new PublicKey(\n 'KeccakSecp256k11111111111111111111111111111',\n );\n\n /**\n * Construct an Ethereum address from a secp256k1 public key buffer.\n * @param {Buffer} publicKey a 64 byte secp256k1 public key buffer\n */\n static publicKeyToEthAddress(\n publicKey: Buffer | Uint8Array | Array,\n ): Buffer {\n assert(\n publicKey.length === PUBLIC_KEY_BYTES,\n `Public key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey.length} bytes`,\n );\n\n try {\n return Buffer.from(\n sha3.keccak_256.update(toBuffer(publicKey)).digest(),\n ).slice(-ETHEREUM_ADDRESS_BYTES);\n } catch (error) {\n throw new Error(`Error constructing Ethereum address: ${error}`);\n }\n }\n\n /**\n * Create an secp256k1 instruction with a public key. The public key\n * must be a buffer that is 64 bytes long.\n */\n static createInstructionWithPublicKey(\n params: CreateSecp256k1InstructionWithPublicKeyParams,\n ): TransactionInstruction {\n const {publicKey, message, signature, recoveryId, instructionIndex} =\n params;\n return Secp256k1Program.createInstructionWithEthAddress({\n ethAddress: Secp256k1Program.publicKeyToEthAddress(publicKey),\n message,\n signature,\n recoveryId,\n instructionIndex,\n });\n }\n\n /**\n * Create an secp256k1 instruction with an Ethereum address. The address\n * must be a hex string or a buffer that is 20 bytes long.\n */\n static createInstructionWithEthAddress(\n params: CreateSecp256k1InstructionWithEthAddressParams,\n ): TransactionInstruction {\n const {\n ethAddress: rawAddress,\n message,\n signature,\n recoveryId,\n instructionIndex = 0,\n } = params;\n\n let ethAddress;\n if (typeof rawAddress === 'string') {\n if (rawAddress.startsWith('0x')) {\n ethAddress = Buffer.from(rawAddress.substr(2), 'hex');\n } else {\n ethAddress = Buffer.from(rawAddress, 'hex');\n }\n } else {\n ethAddress = rawAddress;\n }\n\n assert(\n ethAddress.length === ETHEREUM_ADDRESS_BYTES,\n `Address must be ${ETHEREUM_ADDRESS_BYTES} bytes but received ${ethAddress.length} bytes`,\n );\n\n const dataStart = 1 + SIGNATURE_OFFSETS_SERIALIZED_SIZE;\n const ethAddressOffset = dataStart;\n const signatureOffset = dataStart + ethAddress.length;\n const messageDataOffset = signatureOffset + signature.length + 1;\n const numSignatures = 1;\n\n const instructionData = Buffer.alloc(\n SECP256K1_INSTRUCTION_LAYOUT.span + message.length,\n );\n\n SECP256K1_INSTRUCTION_LAYOUT.encode(\n {\n numSignatures,\n signatureOffset,\n signatureInstructionIndex: instructionIndex,\n ethAddressOffset,\n ethAddressInstructionIndex: instructionIndex,\n messageDataOffset,\n messageDataSize: message.length,\n messageInstructionIndex: instructionIndex,\n signature: toBuffer(signature),\n ethAddress: toBuffer(ethAddress),\n recoveryId,\n },\n instructionData,\n );\n\n instructionData.fill(toBuffer(message), SECP256K1_INSTRUCTION_LAYOUT.span);\n\n return new TransactionInstruction({\n keys: [],\n programId: Secp256k1Program.programId,\n data: instructionData,\n });\n }\n\n /**\n * Create an secp256k1 instruction with a private key. The private key\n * must be a buffer that is 32 bytes long.\n */\n static createInstructionWithPrivateKey(\n params: CreateSecp256k1InstructionWithPrivateKeyParams,\n ): TransactionInstruction {\n const {privateKey: pkey, message, instructionIndex} = params;\n\n assert(\n pkey.length === PRIVATE_KEY_BYTES,\n `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${pkey.length} bytes`,\n );\n\n try {\n const privateKey = toBuffer(pkey);\n const publicKey = publicKeyCreate(privateKey, false).slice(1); // throw away leading byte\n const messageHash = Buffer.from(\n sha3.keccak_256.update(toBuffer(message)).digest(),\n );\n const {signature, recid: recoveryId} = ecdsaSign(messageHash, privateKey);\n\n return this.createInstructionWithPublicKey({\n publicKey,\n message,\n signature,\n recoveryId,\n instructionIndex,\n });\n } catch (error) {\n throw new Error(`Error creating instruction; ${error}`);\n }\n }\n}\n","import {Buffer} from 'buffer';\nimport {\n assert as assertType,\n optional,\n string,\n type as pick,\n} from 'superstruct';\n\nimport * as Layout from './layout';\nimport * as shortvec from './util/shortvec-encoding';\nimport {PublicKey} from './publickey';\n\nexport const VALIDATOR_INFO_KEY = new PublicKey(\n 'Va1idator1nfo111111111111111111111111111111',\n);\n\n/**\n * @internal\n */\ntype ConfigKey = {\n publicKey: PublicKey;\n isSigner: boolean;\n};\n\n/**\n * Info used to identity validators.\n */\nexport type Info = {\n /** validator name */\n name: string;\n /** optional, validator website */\n website?: string;\n /** optional, extra information the validator chose to share */\n details?: string;\n /** optional, used to identify validators on keybase.io */\n keybaseUsername?: string;\n};\n\nconst InfoString = pick({\n name: string(),\n website: optional(string()),\n details: optional(string()),\n keybaseUsername: optional(string()),\n});\n\n/**\n * ValidatorInfo class\n */\nexport class ValidatorInfo {\n /**\n * validator public key\n */\n key: PublicKey;\n /**\n * validator information\n */\n info: Info;\n\n /**\n * Construct a valid ValidatorInfo\n *\n * @param key validator public key\n * @param info validator information\n */\n constructor(key: PublicKey, info: Info) {\n this.key = key;\n this.info = info;\n }\n\n /**\n * Deserialize ValidatorInfo from the config account data. Exactly two config\n * keys are required in the data.\n *\n * @param buffer config account data\n * @return null if info was not found\n */\n static fromConfigData(\n buffer: Buffer | Uint8Array | Array,\n ): ValidatorInfo | null {\n const PUBKEY_LENGTH = 32;\n\n let byteArray = [...buffer];\n const configKeyCount = shortvec.decodeLength(byteArray);\n if (configKeyCount !== 2) return null;\n\n const configKeys: Array = [];\n for (let i = 0; i < 2; i++) {\n const publicKey = new PublicKey(byteArray.slice(0, PUBKEY_LENGTH));\n byteArray = byteArray.slice(PUBKEY_LENGTH);\n const isSigner = byteArray.slice(0, 1)[0] === 1;\n byteArray = byteArray.slice(1);\n configKeys.push({publicKey, isSigner});\n }\n\n if (configKeys[0].publicKey.equals(VALIDATOR_INFO_KEY)) {\n if (configKeys[1].isSigner) {\n const rawInfo: any = Layout.rustString().decode(Buffer.from(byteArray));\n const info = JSON.parse(rawInfo as string);\n assertType(info, InfoString);\n return new ValidatorInfo(configKeys[1].publicKey, info);\n }\n }\n\n return null;\n }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\nimport type {Buffer} from 'buffer';\n\nimport * as Layout from './layout';\nimport {PublicKey} from './publickey';\nimport {toBuffer} from './util/to-buffer';\n\nexport const VOTE_PROGRAM_ID = new PublicKey(\n 'Vote111111111111111111111111111111111111111',\n);\n\nexport type Lockout = {\n slot: number;\n confirmationCount: number;\n};\n\n/**\n * History of how many credits earned by the end of each epoch\n */\nexport type EpochCredits = {\n epoch: number;\n credits: number;\n prevCredits: number;\n};\n\nexport type AuthorizedVoter = {\n epoch: number;\n authorizedVoter: PublicKey;\n};\n\nexport type PriorVoter = {\n authorizedPubkey: PublicKey;\n epochOfLastAuthorizedSwitch: number;\n targetEpoch: number;\n};\n\nexport type BlockTimestamp = {\n slot: number;\n timetamp: number;\n};\n\n/**\n * See https://github.com/solana-labs/solana/blob/8a12ed029cfa38d4a45400916c2463fb82bbec8c/programs/vote_api/src/vote_state.rs#L68-L88\n *\n * @internal\n */\nconst VoteAccountLayout = BufferLayout.struct([\n Layout.publicKey('nodePubkey'),\n Layout.publicKey('authorizedWithdrawer'),\n BufferLayout.u8('commission'),\n BufferLayout.nu64(), // votes.length\n BufferLayout.seq(\n BufferLayout.struct([\n BufferLayout.nu64('slot'),\n BufferLayout.u32('confirmationCount'),\n ]),\n BufferLayout.offset(BufferLayout.u32(), -8),\n 'votes',\n ),\n BufferLayout.u8('rootSlotValid'),\n BufferLayout.nu64('rootSlot'),\n BufferLayout.nu64(), // authorizedVoters.length\n BufferLayout.seq(\n BufferLayout.struct([\n BufferLayout.nu64('epoch'),\n Layout.publicKey('authorizedVoter'),\n ]),\n BufferLayout.offset(BufferLayout.u32(), -8),\n 'authorizedVoters',\n ),\n BufferLayout.struct(\n [\n BufferLayout.seq(\n BufferLayout.struct([\n Layout.publicKey('authorizedPubkey'),\n BufferLayout.nu64('epochOfLastAuthorizedSwitch'),\n BufferLayout.nu64('targetEpoch'),\n ]),\n 32,\n 'buf',\n ),\n BufferLayout.nu64('idx'),\n BufferLayout.u8('isEmpty'),\n ],\n 'priorVoters',\n ),\n BufferLayout.nu64(), // epochCredits.length\n BufferLayout.seq(\n BufferLayout.struct([\n BufferLayout.nu64('epoch'),\n BufferLayout.nu64('credits'),\n BufferLayout.nu64('prevCredits'),\n ]),\n BufferLayout.offset(BufferLayout.u32(), -8),\n 'epochCredits',\n ),\n BufferLayout.struct(\n [BufferLayout.nu64('slot'), BufferLayout.nu64('timestamp')],\n 'lastTimestamp',\n ),\n]);\n\ntype VoteAccountArgs = {\n nodePubkey: PublicKey;\n authorizedWithdrawer: PublicKey;\n commission: number;\n rootSlot: number | null;\n votes: Lockout[];\n authorizedVoters: AuthorizedVoter[];\n priorVoters: PriorVoter[];\n epochCredits: EpochCredits[];\n lastTimestamp: BlockTimestamp;\n};\n\n/**\n * VoteAccount class\n */\nexport class VoteAccount {\n nodePubkey: PublicKey;\n authorizedWithdrawer: PublicKey;\n commission: number;\n rootSlot: number | null;\n votes: Lockout[];\n authorizedVoters: AuthorizedVoter[];\n priorVoters: PriorVoter[];\n epochCredits: EpochCredits[];\n lastTimestamp: BlockTimestamp;\n\n /**\n * @internal\n */\n constructor(args: VoteAccountArgs) {\n this.nodePubkey = args.nodePubkey;\n this.authorizedWithdrawer = args.authorizedWithdrawer;\n this.commission = args.commission;\n this.rootSlot = args.rootSlot;\n this.votes = args.votes;\n this.authorizedVoters = args.authorizedVoters;\n this.priorVoters = args.priorVoters;\n this.epochCredits = args.epochCredits;\n this.lastTimestamp = args.lastTimestamp;\n }\n\n /**\n * Deserialize VoteAccount from the account data.\n *\n * @param buffer account data\n * @return VoteAccount\n */\n static fromAccountData(\n buffer: Buffer | Uint8Array | Array,\n ): VoteAccount {\n const versionOffset = 4;\n const va = VoteAccountLayout.decode(toBuffer(buffer), versionOffset);\n\n let rootSlot: number | null = va.rootSlot;\n if (!va.rootSlotValid) {\n rootSlot = null;\n }\n\n return new VoteAccount({\n nodePubkey: new PublicKey(va.nodePubkey),\n authorizedWithdrawer: new PublicKey(va.authorizedWithdrawer),\n commission: va.commission,\n votes: va.votes,\n rootSlot,\n authorizedVoters: va.authorizedVoters.map(parseAuthorizedVoter),\n priorVoters: getPriorVoters(va.priorVoters),\n epochCredits: va.epochCredits,\n lastTimestamp: va.lastTimestamp,\n });\n }\n}\n\nfunction parseAuthorizedVoter({epoch, authorizedVoter}: AuthorizedVoter) {\n return {\n epoch,\n authorizedVoter: new PublicKey(authorizedVoter),\n };\n}\n\nfunction parsePriorVoters({\n authorizedPubkey,\n epochOfLastAuthorizedSwitch,\n targetEpoch,\n}: PriorVoter) {\n return {\n authorizedPubkey: new PublicKey(authorizedPubkey),\n epochOfLastAuthorizedSwitch,\n targetEpoch,\n };\n}\n\nfunction getPriorVoters({\n buf,\n idx,\n isEmpty,\n}: {\n buf: PriorVoter[];\n idx: number;\n isEmpty: boolean;\n}): PriorVoter[] {\n if (isEmpty) {\n return [];\n }\n\n return [...buf.slice(idx + 1).map(parsePriorVoters), ...buf.slice(0, idx)];\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {encodeData, decodeData, InstructionType} from './instruction';\nimport * as Layout from './layout';\nimport {PublicKey} from './publickey';\nimport {SystemProgram} from './system-program';\nimport {SYSVAR_CLOCK_PUBKEY, SYSVAR_RENT_PUBKEY} from './sysvar';\nimport {Transaction, TransactionInstruction} from './transaction';\nimport {toBuffer} from './util/to-buffer';\n\n/**\n * Vote account info\n */\nexport class VoteInit {\n nodePubkey: PublicKey;\n authorizedVoter: PublicKey;\n authorizedWithdrawer: PublicKey;\n commission: number; /** [0, 100] */\n\n constructor(\n nodePubkey: PublicKey,\n authorizedVoter: PublicKey,\n authorizedWithdrawer: PublicKey,\n commission: number,\n ) {\n this.nodePubkey = nodePubkey;\n this.authorizedVoter = authorizedVoter;\n this.authorizedWithdrawer = authorizedWithdrawer;\n this.commission = commission;\n }\n}\n\n/**\n * Create vote account transaction params\n */\nexport type CreateVoteAccountParams = {\n fromPubkey: PublicKey;\n votePubkey: PublicKey;\n voteInit: VoteInit;\n lamports: number;\n};\n\n/**\n * InitializeAccount instruction params\n */\nexport type InitializeAccountParams = {\n votePubkey: PublicKey;\n nodePubkey: PublicKey;\n voteInit: VoteInit;\n};\n\n/**\n * Authorize instruction params\n */\nexport type AuthorizeVoteParams = {\n votePubkey: PublicKey;\n /** Current vote or withdraw authority, depending on `voteAuthorizationType` */\n authorizedPubkey: PublicKey;\n newAuthorizedPubkey: PublicKey;\n voteAuthorizationType: VoteAuthorizationType;\n};\n\n/**\n * Withdraw from vote account transaction params\n */\nexport type WithdrawFromVoteAccountParams = {\n votePubkey: PublicKey;\n authorizedWithdrawerPubkey: PublicKey;\n lamports: number;\n toPubkey: PublicKey;\n};\n\n/**\n * Vote Instruction class\n */\nexport class VoteInstruction {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Decode a vote instruction and retrieve the instruction type.\n */\n static decodeInstructionType(\n instruction: TransactionInstruction,\n ): VoteInstructionType {\n this.checkProgramId(instruction.programId);\n\n const instructionTypeLayout = BufferLayout.u32('instruction');\n const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n let type: VoteInstructionType | undefined;\n for (const [ixType, layout] of Object.entries(VOTE_INSTRUCTION_LAYOUTS)) {\n if (layout.index == typeIndex) {\n type = ixType as VoteInstructionType;\n break;\n }\n }\n\n if (!type) {\n throw new Error('Instruction type incorrect; not a VoteInstruction');\n }\n\n return type;\n }\n\n /**\n * Decode an initialize vote instruction and retrieve the instruction params.\n */\n static decodeInitializeAccount(\n instruction: TransactionInstruction,\n ): InitializeAccountParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 4);\n\n const {voteInit} = decodeData(\n VOTE_INSTRUCTION_LAYOUTS.InitializeAccount,\n instruction.data,\n );\n\n return {\n votePubkey: instruction.keys[0].pubkey,\n nodePubkey: instruction.keys[3].pubkey,\n voteInit: new VoteInit(\n new PublicKey(voteInit.nodePubkey),\n new PublicKey(voteInit.authorizedVoter),\n new PublicKey(voteInit.authorizedWithdrawer),\n voteInit.commission,\n ),\n };\n }\n\n /**\n * Decode an authorize instruction and retrieve the instruction params.\n */\n static decodeAuthorize(\n instruction: TransactionInstruction,\n ): AuthorizeVoteParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n const {newAuthorized, voteAuthorizationType} = decodeData(\n VOTE_INSTRUCTION_LAYOUTS.Authorize,\n instruction.data,\n );\n\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedPubkey: instruction.keys[2].pubkey,\n newAuthorizedPubkey: new PublicKey(newAuthorized),\n voteAuthorizationType: {\n index: voteAuthorizationType,\n },\n };\n }\n\n /**\n * Decode a withdraw instruction and retrieve the instruction params.\n */\n static decodeWithdraw(\n instruction: TransactionInstruction,\n ): WithdrawFromVoteAccountParams {\n this.checkProgramId(instruction.programId);\n this.checkKeyLength(instruction.keys, 3);\n\n const {lamports} = decodeData(\n VOTE_INSTRUCTION_LAYOUTS.Withdraw,\n instruction.data,\n );\n\n return {\n votePubkey: instruction.keys[0].pubkey,\n authorizedWithdrawerPubkey: instruction.keys[2].pubkey,\n lamports,\n toPubkey: instruction.keys[1].pubkey,\n };\n }\n\n /**\n * @internal\n */\n static checkProgramId(programId: PublicKey) {\n if (!programId.equals(VoteProgram.programId)) {\n throw new Error('invalid instruction; programId is not VoteProgram');\n }\n }\n\n /**\n * @internal\n */\n static checkKeyLength(keys: Array, expectedLength: number) {\n if (keys.length < expectedLength) {\n throw new Error(\n `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n );\n }\n }\n}\n\n/**\n * An enumeration of valid VoteInstructionType's\n */\nexport type VoteInstructionType =\n | 'Authorize'\n | 'InitializeAccount'\n | 'Withdraw';\n\nconst VOTE_INSTRUCTION_LAYOUTS: {\n [type in VoteInstructionType]: InstructionType;\n} = Object.freeze({\n InitializeAccount: {\n index: 0,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.voteInit(),\n ]),\n },\n Authorize: {\n index: 1,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n Layout.publicKey('newAuthorized'),\n BufferLayout.u32('voteAuthorizationType'),\n ]),\n },\n Withdraw: {\n index: 3,\n layout: BufferLayout.struct([\n BufferLayout.u32('instruction'),\n BufferLayout.ns64('lamports'),\n ]),\n },\n});\n\n/**\n * VoteAuthorize type\n */\nexport type VoteAuthorizationType = {\n /** The VoteAuthorize index (from solana-vote-program) */\n index: number;\n};\n\n/**\n * An enumeration of valid VoteAuthorization layouts.\n */\nexport const VoteAuthorizationLayout = Object.freeze({\n Voter: {\n index: 0,\n },\n Withdrawer: {\n index: 1,\n },\n});\n\n/**\n * Factory class for transactions to interact with the Vote program\n */\nexport class VoteProgram {\n /**\n * @internal\n */\n constructor() {}\n\n /**\n * Public key that identifies the Vote program\n */\n static programId: PublicKey = new PublicKey(\n 'Vote111111111111111111111111111111111111111',\n );\n\n /**\n * Max space of a Vote account\n *\n * This is generated from the solana-vote-program VoteState struct as\n * `VoteState::size_of()`:\n * https://docs.rs/solana-vote-program/1.9.5/solana_vote_program/vote_state/struct.VoteState.html#method.size_of\n */\n static space: number = 3731;\n\n /**\n * Generate an Initialize instruction.\n */\n static initializeAccount(\n params: InitializeAccountParams,\n ): TransactionInstruction {\n const {votePubkey, nodePubkey, voteInit} = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.InitializeAccount;\n const data = encodeData(type, {\n voteInit: {\n nodePubkey: toBuffer(voteInit.nodePubkey.toBuffer()),\n authorizedVoter: toBuffer(voteInit.authorizedVoter.toBuffer()),\n authorizedWithdrawer: toBuffer(\n voteInit.authorizedWithdrawer.toBuffer(),\n ),\n commission: voteInit.commission,\n },\n });\n const instructionData = {\n keys: [\n {pubkey: votePubkey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n {pubkey: nodePubkey, isSigner: true, isWritable: false},\n ],\n programId: this.programId,\n data,\n };\n return new TransactionInstruction(instructionData);\n }\n\n /**\n * Generate a transaction that creates a new Vote account.\n */\n static createAccount(params: CreateVoteAccountParams): Transaction {\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: params.fromPubkey,\n newAccountPubkey: params.votePubkey,\n lamports: params.lamports,\n space: this.space,\n programId: this.programId,\n }),\n );\n\n return transaction.add(\n this.initializeAccount({\n votePubkey: params.votePubkey,\n nodePubkey: params.voteInit.nodePubkey,\n voteInit: params.voteInit,\n }),\n );\n }\n\n /**\n * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account.\n */\n static authorize(params: AuthorizeVoteParams): Transaction {\n const {\n votePubkey,\n authorizedPubkey,\n newAuthorizedPubkey,\n voteAuthorizationType,\n } = params;\n\n const type = VOTE_INSTRUCTION_LAYOUTS.Authorize;\n const data = encodeData(type, {\n newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n voteAuthorizationType: voteAuthorizationType.index,\n });\n\n const keys = [\n {pubkey: votePubkey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n ];\n\n return new Transaction().add({\n keys,\n programId: this.programId,\n data,\n });\n }\n\n /**\n * Generate a transaction to withdraw from a Vote account.\n */\n static withdraw(params: WithdrawFromVoteAccountParams): Transaction {\n const {votePubkey, authorizedWithdrawerPubkey, lamports, toPubkey} = params;\n const type = VOTE_INSTRUCTION_LAYOUTS.Withdraw;\n const data = encodeData(type, {lamports});\n\n const keys = [\n {pubkey: votePubkey, isSigner: false, isWritable: true},\n {pubkey: toPubkey, isSigner: false, isWritable: true},\n {pubkey: authorizedWithdrawerPubkey, isSigner: true, isWritable: false},\n ];\n\n return new Transaction().add({\n keys,\n programId: this.programId,\n data,\n });\n }\n}\n","import type {Buffer} from 'buffer';\n\nimport {Connection} from '../connection';\nimport type {TransactionSignature} from '../transaction';\nimport type {ConfirmOptions} from '../connection';\n\n/**\n * Send and confirm a raw transaction\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Buffer} rawTransaction\n * @param {ConfirmOptions} [options]\n * @returns {Promise}\n */\nexport async function sendAndConfirmRawTransaction(\n connection: Connection,\n rawTransaction: Buffer,\n options?: ConfirmOptions,\n): Promise {\n const sendOptions = options && {\n skipPreflight: options.skipPreflight,\n preflightCommitment: options.preflightCommitment || options.commitment,\n };\n\n const signature = await connection.sendRawTransaction(\n rawTransaction,\n sendOptions,\n );\n\n const status = (\n await connection.confirmTransaction(\n signature,\n options && options.commitment,\n )\n ).value;\n\n if (status.err) {\n throw new Error(\n `Raw transaction ${signature} failed (${JSON.stringify(status)})`,\n );\n }\n\n return signature;\n}\n","const endpoint = {\n http: {\n devnet: 'http://api.devnet.solana.com',\n testnet: 'http://api.testnet.solana.com',\n 'mainnet-beta': 'http://api.mainnet-beta.solana.com/',\n },\n https: {\n devnet: 'https://api.devnet.solana.com',\n testnet: 'https://api.testnet.solana.com',\n 'mainnet-beta': 'https://api.mainnet-beta.solana.com/',\n },\n};\n\nexport type Cluster = 'devnet' | 'testnet' | 'mainnet-beta';\n\n/**\n * Retrieves the RPC API URL for the specified cluster\n */\nexport function clusterApiUrl(cluster?: Cluster, tls?: boolean): string {\n const key = tls === false ? 'http' : 'https';\n\n if (!cluster) {\n return endpoint[key]['devnet'];\n }\n\n const url = endpoint[key][cluster];\n if (!url) {\n throw new Error(`Unknown ${key} cluster: ${cluster}`);\n }\n return url;\n}\n","import { Connection, Keypair, PublicKey, Transaction } from '@solana/web3.js';\nimport {\n checkRecentBlock,\n checkSignatures,\n checkTransactionNotBroadcast,\n checkTransactionParameters,\n Config,\n DEFAULT_CONFIG,\n defaultSigner,\n getClusterUrl,\n isKeypair,\n makeTransaction,\n pubkeyOf,\n SignCallback,\n} from './utilities';\n\nexport { SignCallback, Config, DEFAULT_CONFIG } from './utilities';\n\nexport const prove = async (\n key: PublicKey | Keypair,\n signer?: SignCallback,\n config: Config = DEFAULT_CONFIG\n): Promise => {\n if (isKeypair(key) && signer)\n throw new Error('Provide a keypair or a signer, not both');\n if (!isKeypair(key) && !signer)\n throw new Error('Provide either a keypair or a signer');\n const sign = signer || defaultSigner(key as Keypair);\n\n const connection =\n config.connection ||\n new Connection(getClusterUrl(config), config.commitment);\n\n const publicKey = pubkeyOf(key);\n\n const transaction = await makeTransaction(\n connection,\n publicKey,\n publicKey,\n 0\n );\n const signedTransaction = await sign(transaction);\n return signedTransaction.serialize();\n};\n\nexport const verifyStatic = (evidence: Buffer, publicKey: PublicKey): void => {\n const transaction = Transaction.from(evidence);\n\n checkSignatures(transaction, publicKey);\n checkTransactionParameters(transaction);\n};\n\nexport const verify = async (\n evidence: Buffer,\n publicKey: PublicKey,\n config: Config = DEFAULT_CONFIG\n): Promise => {\n verifyStatic(evidence, publicKey);\n\n const transaction = Transaction.from(evidence);\n\n const connection =\n config.connection ||\n new Connection(getClusterUrl(config), config.commitment);\n\n const checkTransactionNotBroadcastPromise = config.broadcastCheck\n ? checkTransactionNotBroadcast(connection, transaction)\n : Promise.resolve();\n\n const checkBlockPromise = config.recentBlockCheck\n ? checkRecentBlock(connection, transaction)\n : Promise.resolve();\n\n await Promise.all([checkTransactionNotBroadcastPromise, checkBlockPromise]);\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\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}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\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 Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\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}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\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}","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}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n return path.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n}\n\nfunction getValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n\n if (transform) {\n value = transform(value);\n }\n\n return value;\n}\n\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n\n if (cssProperty === false) {\n return value;\n }\n\n return {\n [cssProperty]: value\n };\n };\n\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\n\nexport default style;","/**\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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/*\r\n * big.js v6.1.1\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2021 Michael Mclaughlin\r\n * https://github.com/MikeMcl/big.js/LICENCE.md\r\n */\r\n;(function (GLOBAL) {\r\n 'use strict';\r\n var Big,\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\n DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n /*\r\n * When true, an error will be thrown if a primitive number is passed to the Big constructor,\r\n * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\r\n * primitive number without a loss of precision.\r\n */\r\n STRICT = false, // true or false\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n /*\r\n * Create and return a Big constructor.\r\n */\r\n function _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n if (typeof n !== 'string') {\r\n if (Big.strict === true) {\r\n throw TypeError(INVALID + 'number');\r\n }\r\n\r\n // Minus zero?\r\n n = n === 0 && 1 / n < 0 ? '-0' : String(n);\r\n }\r\n\r\n parse(x, n);\r\n }\r\n\r\n // Retain a reference to this Big constructor.\r\n // Shadow Big.prototype.constructor which points to Object.\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.strict = STRICT;\r\n Big.roundDown = 0;\r\n Big.roundHalfUp = 1;\r\n Big.roundHalfEven = 2;\r\n Big.roundUp = 3;\r\n\r\n return Big;\r\n }\r\n\r\n\r\n /*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\n function parse(x, n) {\r\n var e, i, nl;\r\n\r\n if (!NUMERIC.test(n)) {\r\n throw Error(INVALID + 'number');\r\n }\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\r\n *\r\n * x {Big} The Big to round.\r\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\r\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\n function round(x, sd, rm, more) {\r\n var xc = x.c;\r\n\r\n if (rm === UNDEFINED) rm = x.constructor.RM;\r\n if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n if (sd < 1) {\r\n more =\r\n rm === 3 && (more || !!xc[0]) || sd === 0 && (\r\n rm === 1 && xc[0] >= 5 ||\r\n rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED))\r\n );\r\n\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = x.e - sd + 1;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else if (sd < xc.length) {\r\n\r\n // xc[sd] is the digit after the digit that may be rounded up.\r\n more =\r\n rm === 1 && xc[sd] >= 5 ||\r\n rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\r\n (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\r\n rm === 3 && (more || !!xc[0]);\r\n\r\n // Remove any digits after the required precision.\r\n xc.length = sd--;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[sd] > 9;) {\r\n xc[sd] = 0;\r\n if (!sd--) {\r\n ++x.e;\r\n xc.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (sd = xc.length; !xc[--sd];) xc.pop();\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n */\r\n function stringify(x, doExponential, isNonzero) {\r\n var e = x.e,\r\n s = x.c.join(''),\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (doExponential) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) {\r\n for (e -= n; e--;) s += '0';\r\n } else if (e < n) {\r\n s = s.slice(0, e) + '.' + s.slice(e);\r\n }\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && isNonzero ? '-' + s : s;\r\n }\r\n\r\n\r\n // Prototype/instance methods\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\n P.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\n P.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(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 zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 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 = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\n P.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n\r\n // Divisor is zero?\r\n if (!b[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) {\r\n y.s = k;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n p = dp + (q.e = x.e - y.e) + 1; // precision of the result\r\n\r\n q.s = k;\r\n k = p < 0 ? 0 : p;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n p--;\r\n }\r\n\r\n // Round?\r\n if (qi > p) round(q, p, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\n P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\n P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\n P.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\n P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\n P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\n P.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\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 xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (yc[0]) {\r\n y.s = -b;\r\n } else if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = 1;\r\n }\r\n return y;\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\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 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 = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\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) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\n P.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\n P.plus = P.add = function (y) {\r\n var e, k, t,\r\n x = this,\r\n Big = x.constructor;\r\n\r\n y = new Big(y);\r\n\r\n // Signs differ?\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (!yc[0]) {\r\n if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = x.s;\r\n }\r\n }\r\n return y;\r\n }\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (e = xe - ye) {\r\n if (e > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n e = -e;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; e--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n e = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (k = 0; e; xc[e] %= 10) k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (k) {\r\n xc.unshift(k);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (e = xc.length; xc[--e] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\n P.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor('1'),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\r\n throw Error(INVALID + 'exponent');\r\n }\r\n\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\r\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\n P.prec = function (sd, rm) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n return round(new this.constructor(this), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\r\n * using rounding mode rm, or Big.RM if rm is not specified.\r\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\n P.round = function (dp, rm) {\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n return round(new this.constructor(this), dp + this.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\n P.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big('0.5');\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) {\r\n throw Error(NAME + 'No square root');\r\n }\r\n\r\n // Estimate.\r\n s = Math.sqrt(x + '');\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s + '');\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\n P.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) {\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = b;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), ++dp, rm);\r\n for (; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, true, !!n);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), dp + x.e + 1, rm);\r\n\r\n // x.e may have changed if the value is rounded up.\r\n for (dp = dp + x.e + 1; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, false, !!n);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\n P.toJSON = P.toString = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Big as a primitve number.\r\n */\r\n P.toNumber = function () {\r\n var n = Number(stringify(this, true, true));\r\n if (this.constructor.strict === true && !this.eq(n.toString())) {\r\n throw Error(NAME + 'Imprecise conversion');\r\n }\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * rounding mode rm, or Big.RM if rm is not specified.\r\n * Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var x = this,\r\n Big = x.constructor,\r\n n = x.c[0];\r\n\r\n if (sd !== UNDEFINED) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n x = round(new Big(x), sd, rm);\r\n for (; x.c.length < sd;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\n P.valueOf = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n if (Big.strict === true) {\r\n throw Error(NAME + 'valueOf disallowed');\r\n }\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\r\n };\r\n\r\n\r\n // Export\r\n\r\n\r\n Big = _Big_();\r\n\r\n Big['default'] = Big.Big = Big;\r\n\r\n //AMD.\r\n if (typeof define === 'function' && define.amd) {\r\n define(function () { return Big; });\r\n\r\n // Node and other CommonJS-like environments that support module.exports.\r\n } else if (typeof module !== 'undefined' && module.exports) {\r\n module.exports = Big;\r\n\r\n //Browser.\r\n } else {\r\n GLOBAL.Big = Big;\r\n }\r\n})(this);\r\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n var rules = insertStyles(cache, serialized, typeof finalTag === 'string');\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n var ele = /*#__PURE__*/createElement(finalTag, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","/** @license MUI v5.4.1\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 */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n\n return stylesFactory(...styles);\n };\n }\n\n return stylesFactory;\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import merge from './merge';\n\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n\n return acc;\n }, {});\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\n\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\n\nfunction getBorder(value) {\n if (typeof value !== 'number') {\n return value;\n }\n\n return `${value}px solid`;\n}\n\nexport const border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport const borderTopColor = style({\n prop: 'borderTopColor',\n themeKey: 'palette'\n});\nexport const borderRightColor = style({\n prop: 'borderRightColor',\n themeKey: 'palette'\n});\nexport const borderBottomColor = style({\n prop: 'borderBottomColor',\n themeKey: 'palette'\n});\nexport const borderLeftColor = style({\n prop: 'borderLeftColor',\n themeKey: 'palette'\n});\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nexport const displayPrint = style({\n prop: 'displayPrint',\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n});\nexport const displayRaw = style({\n prop: 'display'\n});\nexport const overflow = style({\n prop: 'overflow'\n});\nexport const textOverflow = style({\n prop: 'textOverflow'\n});\nexport const visibility = style({\n prop: 'visibility'\n});\nexport const whiteSpace = style({\n prop: 'whiteSpace'\n});\nexport default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);","import style from './style';\nimport compose from './compose';\nexport const flexBasis = style({\n prop: 'flexBasis'\n});\nexport const flexDirection = style({\n prop: 'flexDirection'\n});\nexport const flexWrap = style({\n prop: 'flexWrap'\n});\nexport const justifyContent = style({\n prop: 'justifyContent'\n});\nexport const alignItems = style({\n prop: 'alignItems'\n});\nexport const alignContent = style({\n prop: 'alignContent'\n});\nexport const order = style({\n prop: 'order'\n});\nexport const flex = style({\n prop: 'flex'\n});\nexport const flexGrow = style({\n prop: 'flexGrow'\n});\nexport const flexShrink = style({\n prop: 'flexShrink'\n});\nexport const alignSelf = style({\n prop: 'alignSelf'\n});\nexport const justifyItems = style({\n prop: 'justifyItems'\n});\nexport const justifySelf = style({\n prop: 'justifySelf'\n});\nconst flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\nexport default flexbox;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport const position = style({\n prop: 'position'\n});\nexport const zIndex = style({\n prop: 'zIndex',\n themeKey: 'zIndex'\n});\nexport const top = style({\n prop: 'top'\n});\nexport const right = style({\n prop: 'right'\n});\nexport const bottom = style({\n prop: 'bottom'\n});\nexport const left = style({\n prop: 'left'\n});\nexport default compose(position, zIndex, top, right, bottom, left);","import style from './style';\nimport compose from './compose';\nexport const color = style({\n prop: 'color',\n themeKey: 'palette'\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette'\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette'\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nconst boxShadow = style({\n prop: 'boxShadow',\n themeKey: 'shadows'\n});\nexport default boxShadow;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\n\nfunction transform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\n\nexport const width = style({\n prop: 'width',\n transform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme$breakpoi, _props$theme$breakpoi2;\n\n const breakpoint = ((_props$theme = props.theme) == null ? void 0 : (_props$theme$breakpoi = _props$theme.breakpoints) == null ? void 0 : (_props$theme$breakpoi2 = _props$theme$breakpoi.values) == null ? void 0 : _props$theme$breakpoi2[propValue]) || breakpointsValues[propValue];\n return {\n maxWidth: breakpoint || transform(propValue)\n };\n };\n\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform\n});\nexport const height = style({\n prop: 'height',\n transform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import style from './style';\nimport compose from './compose';\nexport const fontFamily = style({\n prop: 'fontFamily',\n themeKey: 'typography'\n});\nexport const fontSize = style({\n prop: 'fontSize',\n themeKey: 'typography'\n});\nexport const fontStyle = style({\n prop: 'fontStyle',\n themeKey: 'typography'\n});\nexport const fontWeight = style({\n prop: 'fontWeight',\n themeKey: 'typography'\n});\nexport const letterSpacing = style({\n prop: 'letterSpacing'\n});\nexport const textTransform = style({\n prop: 'textTransform'\n});\nexport const lineHeight = style({\n prop: 'lineHeight'\n});\nexport const textAlign = style({\n prop: 'textAlign'\n});\nexport const typographyVariant = style({\n prop: 'typography',\n cssProperty: false,\n themeKey: 'typography'\n});\nconst typography = compose(typographyVariant, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, textTransform);\nexport default typography;","import borders from './borders';\nimport display from './display';\nimport flexbox from './flexbox';\nimport grid from './grid';\nimport positions from './positions';\nimport palette from './palette';\nimport shadows from './shadows';\nimport sizing from './sizing';\nimport spacing from './spacing';\nimport typography from './typography';\nconst filterPropsMapping = {\n borders: borders.filterProps,\n display: display.filterProps,\n flexbox: flexbox.filterProps,\n grid: grid.filterProps,\n positions: positions.filterProps,\n palette: palette.filterProps,\n shadows: shadows.filterProps,\n sizing: sizing.filterProps,\n spacing: spacing.filterProps,\n typography: typography.filterProps\n};\nconst styleFunctionMapping = {\n borders,\n display,\n flexbox,\n grid,\n positions,\n palette,\n shadows,\n sizing,\n spacing,\n typography\n};\nexport const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => {\n filterPropsMapping[styleFnName].forEach(propName => {\n acc[propName] = styleFunctionMapping[styleFnName];\n });\n return acc;\n}, {});\n\nfunction getThemeValue(prop, value, theme) {\n const inputProps = {\n [prop]: value,\n theme\n };\n const styleFunction = propToStyleFunction[prop];\n return styleFunction ? styleFunction(inputProps) : {\n [prop]: value\n };\n}\n\nexport default getThemeValue;","import merge from '../merge';\nimport getThemeValue, { propToStyleFunction } from '../getThemeValue';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\n\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\n\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\nfunction styleFunctionSx(props) {\n const {\n sx,\n theme = {}\n } = props || {};\n\n if (!sx) {\n return null; // emotion & styled-components will neglect null\n }\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n\n\n function traverse(sxInput) {\n let sxObject = sxInput;\n\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (propToStyleFunction[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n}\n\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\n\nfunction isEmpty(string) {\n return string.length === 0;\n}\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created.\n */\n\n\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"],\n _excluded2 = [\"theme\"],\n _excluded3 = [\"theme\"];\nimport styledEngineStyled from '@mui/styled-engine';\nimport { getDisplayName } from '@mui/utils';\nimport createTheme from './createTheme';\nimport styleFunctionSx from './styleFunctionSx';\nimport propsToClassKey from './propsToClassKey';\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nconst getStyleOverrides = (name, theme) => {\n if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {\n return theme.components[name].styleOverrides;\n }\n\n return null;\n};\n\nconst getVariantStyles = (name, theme) => {\n let variants = [];\n\n if (theme && theme.components && theme.components[name] && theme.components[name].variants) {\n variants = theme.components[name].variants;\n }\n\n const variantsStyles = {};\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n return variantsStyles;\n};\n\nconst variantsResolver = (props, styles, theme, name) => {\n var _theme$components, _theme$components$nam;\n\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n const themeVariants = theme == null ? void 0 : (_theme$components = theme.components) == null ? void 0 : (_theme$components$nam = _theme$components[name]) == null ? void 0 : _theme$components$nam.variants;\n\n if (themeVariants) {\n themeVariants.forEach(themeVariant => {\n let isMatch = true;\n Object.keys(themeVariant.props).forEach(key => {\n if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) {\n isMatch = false;\n }\n });\n\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(themeVariant.props)]);\n }\n });\n }\n\n return variantsStyles;\n};\n\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\n\nconst lowercaseFirstLetter = string => {\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\n\nexport default function createStyled(input = {}) {\n const {\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n return (tag, inputOptions = {}) => {\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n overridesResolver\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded); // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n\n\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n\n let shouldForwardPropOption = shouldForwardProp;\n\n if (componentSlot === 'Root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n }\n\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n\n const muiStyledResolver = (styleArg, ...expressions) => {\n const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {\n // On the server emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n // eslint-disable-next-line no-underscore-dangle\n return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? _ref => {\n let {\n theme: themeInput\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded2);\n\n return stylesArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n } : stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\n\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n const styleOverrides = getStyleOverrides(componentName, theme);\n\n if (styleOverrides) {\n const resolvedStyleOverrides = {};\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(props) : slotStyle;\n });\n return overridesResolver(props, resolvedStyleOverrides);\n }\n\n return null;\n });\n }\n\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);\n });\n }\n\n if (!skipSx) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return styleFunctionSx(_extends({}, props, {\n theme\n }));\n });\n }\n\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill(''); // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n } else if (typeof styleArg === 'function') {\n // If the type is function, we need to define the default theme.\n transformedStyleArg = _ref2 => {\n let {\n theme: themeInput\n } = _ref2,\n other = _objectWithoutPropertiesLoose(_ref2, _excluded3);\n\n return styleArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n };\n }\n\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n\n if (componentName) {\n displayName = `${componentName}${componentSlot || ''}`;\n }\n\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n\n Component.displayName = displayName;\n }\n\n return Component;\n };\n\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n\n return muiStyledResolver;\n };\n}","import { createStyled, shouldForwardProp } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport const rootShouldForwardProp = prop => shouldForwardProp(prop) && prop !== 'classes';\nexport const slotShouldForwardProp = shouldForwardProp;\nconst styled = createStyled({\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","var __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};\nimport EventEmitter from 'eventemitter3';\nimport { PublicKey } from '@solana/web3.js';\nimport bs58 from 'bs58';\nexport default class Wallet extends EventEmitter {\n constructor(provider, _network) {\n super();\n this._network = _network;\n this._publicKey = null;\n this._popup = null;\n this._handlerAdded = false;\n this._nextRequestId = 1;\n this._autoApprove = false;\n this._responsePromises = new Map();\n this.handleMessage = (e) => {\n var _a;\n if ((this._injectedProvider && e.source === window) ||\n (e.origin === ((_a = this._providerUrl) === null || _a === void 0 ? void 0 : _a.origin) && e.source === this._popup)) {\n if (e.data.method === 'connected') {\n const newPublicKey = new PublicKey(e.data.params.publicKey);\n if (!this._publicKey || !this._publicKey.equals(newPublicKey)) {\n if (this._publicKey && !this._publicKey.equals(newPublicKey)) {\n this.handleDisconnect();\n }\n this._publicKey = newPublicKey;\n this._autoApprove = !!e.data.params.autoApprove;\n this.emit('connect', this._publicKey);\n }\n }\n else if (e.data.method === 'disconnected') {\n this.handleDisconnect();\n }\n else if (e.data.result || e.data.error) {\n const promises = this._responsePromises.get(e.data.id);\n if (promises) {\n const [resolve, reject] = promises;\n if (e.data.result) {\n resolve(e.data.result);\n }\n else {\n reject(new Error(e.data.error));\n }\n }\n }\n }\n };\n this._beforeUnload = () => {\n void this.disconnect();\n };\n if (isInjectedProvider(provider)) {\n this._injectedProvider = provider;\n }\n else if (isString(provider)) {\n this._providerUrl = new URL(provider);\n this._providerUrl.hash = new URLSearchParams({\n origin: window.location.origin,\n network: this._network,\n }).toString();\n }\n else {\n throw new Error('provider parameter must be an injected provider or a URL string.');\n }\n }\n handleConnect() {\n var _a;\n if (!this._handlerAdded) {\n this._handlerAdded = true;\n window.addEventListener('message', this.handleMessage);\n window.addEventListener('beforeunload', this._beforeUnload);\n }\n if (this._injectedProvider) {\n return new Promise((resolve) => {\n void this.sendRequest('connect', {});\n resolve();\n });\n }\n else {\n window.name = 'parent';\n this._popup = window.open((_a = this._providerUrl) === null || _a === void 0 ? void 0 : _a.toString(), '_blank', 'location,resizable,width=460,height=675');\n return new Promise((resolve) => {\n this.once('connect', resolve);\n });\n }\n }\n handleDisconnect() {\n if (this._handlerAdded) {\n this._handlerAdded = false;\n window.removeEventListener('message', this.handleMessage);\n window.removeEventListener('beforeunload', this._beforeUnload);\n }\n if (this._publicKey) {\n this._publicKey = null;\n this.emit('disconnect');\n }\n this._responsePromises.forEach(([, reject], id) => {\n this._responsePromises.delete(id);\n reject(new Error('Wallet disconnected'));\n });\n }\n sendRequest(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n if (method !== 'connect' && !this.connected) {\n throw new Error('Wallet not connected');\n }\n const requestId = this._nextRequestId;\n ++this._nextRequestId;\n return new Promise((resolve, reject) => {\n var _a, _b, _c, _d;\n this._responsePromises.set(requestId, [resolve, reject]);\n if (this._injectedProvider) {\n this._injectedProvider.postMessage({\n jsonrpc: '2.0',\n id: requestId,\n method,\n params: Object.assign({ network: this._network }, params),\n });\n }\n else {\n (_a = this._popup) === null || _a === void 0 ? void 0 : _a.postMessage({\n jsonrpc: '2.0',\n id: requestId,\n method,\n params,\n }, (_c = (_b = this._providerUrl) === null || _b === void 0 ? void 0 : _b.origin) !== null && _c !== void 0 ? _c : '');\n if (!this.autoApprove) {\n (_d = this._popup) === null || _d === void 0 ? void 0 : _d.focus();\n }\n }\n });\n });\n }\n get publicKey() {\n return this._publicKey;\n }\n get connected() {\n return this._publicKey !== null;\n }\n get autoApprove() {\n return this._autoApprove;\n }\n connect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._popup) {\n this._popup.close();\n }\n yield this.handleConnect();\n });\n }\n disconnect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._injectedProvider) {\n yield this.sendRequest('disconnect', {});\n }\n if (this._popup) {\n this._popup.close();\n }\n this.handleDisconnect();\n });\n }\n sign(data, display) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!(data instanceof Uint8Array)) {\n throw new Error('Data must be an instance of Uint8Array');\n }\n const response = (yield this.sendRequest('sign', {\n data,\n display,\n }));\n const signature = bs58.decode(response.signature);\n const publicKey = new PublicKey(response.publicKey);\n return {\n signature,\n publicKey,\n };\n });\n }\n signTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = (yield this.sendRequest('signTransaction', {\n message: bs58.encode(transaction.serializeMessage()),\n }));\n const signature = bs58.decode(response.signature);\n const publicKey = new PublicKey(response.publicKey);\n transaction.addSignature(publicKey, signature);\n return transaction;\n });\n }\n signAllTransactions(transactions) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = (yield this.sendRequest('signAllTransactions', {\n messages: transactions.map((tx) => bs58.encode(tx.serializeMessage())),\n }));\n const signatures = response.signatures.map((s) => bs58.decode(s));\n const publicKey = new PublicKey(response.publicKey);\n transactions = transactions.map((tx, idx) => {\n tx.addSignature(publicKey, signatures[idx]);\n return tx;\n });\n return transactions;\n });\n }\n diffieHellman(publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!(publicKey instanceof Uint8Array)) {\n throw new Error('Data must be an instance of Uint8Array');\n }\n const response = (yield this.sendRequest('diffieHellman', {\n publicKey,\n }));\n return response;\n });\n }\n}\nfunction isString(a) {\n return typeof a === 'string';\n}\nfunction isInjectedProvider(a) {\n return (isObject(a) && 'postMessage' in a && typeof a.postMessage === 'function');\n}\nfunction isObject(a) {\n return typeof a === 'object' && a !== null;\n}\n//# sourceMappingURL=index.js.map","import * as React from \"react\";\nimport type {\n History,\n InitialEntry,\n Location,\n MemoryHistory,\n Path,\n To\n} from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath\n} from \"history\";\n\nexport type { Location, Path, To, NavigationType };\n\nfunction invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nfunction warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record = {};\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// CONTEXT\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nconst NavigationContext = React.createContext(null!);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nconst LocationContext = React.createContext(null!);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nconst RouteContext = React.createContext({\n outlet: null,\n matches: []\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n///////////////////////////////////////////////////////////////////////////////\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// HOOKS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment extends infer LeftResult\n ? ParamParseSegment extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\ntype ParamParseKey =\n ParamParseSegment extends string\n ? ParamParseSegment\n : string;\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map(match => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map(match =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase])\n })\n ),\n parentMatches\n );\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, element => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, _ =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map(meta => meta.childrenIndex),\n b.routesMeta.map(meta => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter(s => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(\n branch: RouteBranch,\n pathname: string\n): RouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: joinPaths([matchedPathname, match.pathnameBase]),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n\nfunction _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n }\n value={{\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }}\n />\n );\n }, null as React.ReactElement | null);\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n \"(?:\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how
works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nfunction getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nfunction stripBasename(pathname: string, basename: string): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nconst joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nconst normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n NavigationContext as UNSAFE_NavigationContext,\n LocationContext as UNSAFE_LocationContext,\n RouteContext as UNSAFE_RouteContext\n};\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \" \\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n return _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \" \\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \" \\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \" \\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage ? 'default message' : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","import { internal_resolveProps as resolveProps } from '@mui/utils';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n\n return resolveProps(theme.components[name].defaultProps, props);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n\n Object.keys(defaultProps).forEach(propName => {\n if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","import { useThemeProps as systemUseThemeProps } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme\n });\n}","import getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme\n}) {\n const theme = useTheme(defaultTheme);\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","'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",null,null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map",null,null,"import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function snakeCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"_\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map",null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSet = exports.set = void 0;\nconst _AVAILABLE_FEATURES = new Set([\"anchor-deprecated-state\", \"debug-logs\"]);\nconst _FEATURES = new Map();\nfunction set(key) {\n if (!_AVAILABLE_FEATURES.has(key)) {\n throw new Error(\"Invalid feature\");\n }\n _FEATURES.set(key, true);\n}\nexports.set = set;\nfunction isSet(key) {\n return _FEATURES.get(key) !== undefined;\n}\nexports.isSet = isSet;\n//# sourceMappingURL=features.js.map",null,null,"/* The MIT License (MIT)\n *\n * Copyright 2015-2018 Peter A. Bigot\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Support for translating between Buffer instances and JavaScript\n * native types.\n *\n * {@link module:Layout~Layout|Layout} is the basis of a class\n * hierarchy that associates property names with sequences of encoded\n * bytes.\n *\n * Layouts are supported for these scalar (numeric) types:\n * * {@link module:Layout~UInt|Unsigned integers in little-endian\n * format} with {@link module:Layout.u8|8-bit}, {@link\n * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\n * {@link module:Layout.u32|32-bit}, {@link\n * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\n * representation ranges;\n * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\n * format} with {@link module:Layout.u16be|16-bit}, {@link\n * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\n * {@link module:Layout.u40be|40-bit}, and {@link\n * module:Layout.u48be|48-bit} representation ranges;\n * * {@link module:Layout~Int|Signed integers in little-endian\n * format} with {@link module:Layout.s8|8-bit}, {@link\n * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\n * {@link module:Layout.s32|32-bit}, {@link\n * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\n * representation ranges;\n * * {@link module:Layout~IntBE|Signed integers in big-endian format}\n * with {@link module:Layout.s16be|16-bit}, {@link\n * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\n * {@link module:Layout.s40be|40-bit}, and {@link\n * module:Layout.s48be|48-bit} representation ranges;\n * * 64-bit integral values that decode to an exact (if magnitude is\n * less than 2^53) or nearby integral Number in {@link\n * module:Layout.nu64|unsigned little-endian}, {@link\n * module:Layout.nu64be|unsigned big-endian}, {@link\n * module:Layout.ns64|signed little-endian}, and {@link\n * module:Layout.ns64be|unsigned big-endian} encodings;\n * * 32-bit floating point values with {@link\n * module:Layout.f32|little-endian} and {@link\n * module:Layout.f32be|big-endian} representations;\n * * 64-bit floating point values with {@link\n * module:Layout.f64|little-endian} and {@link\n * module:Layout.f64be|big-endian} representations;\n * * {@link module:Layout.const|Constants} that take no space in the\n * encoded expression.\n *\n * and for these aggregate types:\n * * {@link module:Layout.seq|Sequence}s of instances of a {@link\n * module:Layout~Layout|Layout}, with JavaScript representation as\n * an Array and constant or data-dependent {@link\n * module:Layout~Sequence#count|length};\n * * {@link module:Layout.struct|Structure}s that aggregate a\n * heterogeneous sequence of {@link module:Layout~Layout|Layout}\n * instances, with JavaScript representation as an Object;\n * * {@link module:Layout.union|Union}s that support multiple {@link\n * module:Layout~VariantLayout|variant layouts} over a fixed\n * (padded) or variable (not padded) span of bytes, using an\n * unsigned integer at the start of the data or a separate {@link\n * module:Layout.unionLayoutDiscriminator|layout element} to\n * determine which layout to use when interpreting the buffer\n * contents;\n * * {@link module:Layout.bits|BitStructure}s that contain a sequence\n * of individual {@link\n * module:Layout~BitStructure#addField|BitField}s packed into an 8,\n * 16, 24, or 32-bit unsigned integer starting at the least- or\n * most-significant bit;\n * * {@link module:Layout.cstr|C strings} of varying length;\n * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\n * module:Layout~Blob#length|length} raw data.\n *\n * All {@link module:Layout~Layout|Layout} instances are immutable\n * after construction, to prevent internal state from becoming\n * inconsistent.\n *\n * @local Layout\n * @local ExternalLayout\n * @local GreedyCount\n * @local OffsetLayout\n * @local UInt\n * @local UIntBE\n * @local Int\n * @local IntBE\n * @local NearUInt64\n * @local NearUInt64BE\n * @local NearInt64\n * @local NearInt64BE\n * @local Float\n * @local FloatBE\n * @local Double\n * @local DoubleBE\n * @local Sequence\n * @local Structure\n * @local UnionDiscriminator\n * @local UnionLayoutDiscriminator\n * @local Union\n * @local VariantLayout\n * @local BitStructure\n * @local BitField\n * @local Boolean\n * @local Blob\n * @local CString\n * @local Constant\n * @local bindConstructorLayout\n * @module Layout\n * @license MIT\n * @author Peter A. Bigot\n * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\n */\n\n'use strict';\n\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\nclass Layout {\n constructor(span, property) {\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n this.span = span;\n\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n makeDestinationObject() {\n return {};\n }\n\n /**\n * Decode from a Buffer into an JavaScript value.\n *\n * @param {Buffer} b - the buffer from which encoded data is read.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {(Number|Array|Object)} - the value of the decoded data.\n *\n * @abstract\n */\n decode(b, offset) {\n throw new Error('Layout is abstract');\n }\n\n /**\n * Encode a JavaScript value into a Buffer.\n *\n * @param {(Number|Array|Object)} src - the value to be encoded into\n * the buffer. The type accepted depends on the (sub-)type of {@link\n * Layout}.\n *\n * @param {Buffer} b - the buffer into which encoded data will be\n * written.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {Number} - the number of bytes encoded, including the\n * space skipped for internal padding, but excluding data such as\n * {@link Sequence#count|lengths} when stored {@link\n * ExternalLayout|externally}. This is the adjustment to `offset`\n * producing the offset where data for the next layout would be\n * written.\n *\n * @abstract\n */\n encode(src, b, offset) {\n throw new Error('Layout is abstract');\n }\n\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Buffer} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n return this.span;\n }\n\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n replicate(property) {\n const rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n fromArray(values) {\n return undefined;\n }\n}\nexports.Layout = Layout;\n\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n return name;\n}\nexports.nameWithProperty = nameWithProperty;\n\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n if (Class.hasOwnProperty('layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n if (!(layout && (layout instanceof Layout))) {\n throw new TypeError('layout must be a Layout');\n }\n if (layout.hasOwnProperty('boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n layout.makeDestinationObject = (() => new Class());\n Object.defineProperty(Class.prototype, 'encode', {\n value: function(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true,\n });\n Object.defineProperty(Class, 'decode', {\n value: function(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true,\n });\n}\nexports.bindConstructorLayout = bindConstructorLayout;\n\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\nclass ExternalLayout extends Layout {\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n}\n\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\nclass GreedyCount extends ExternalLayout {\n constructor(elementSpan, property) {\n if (undefined === elementSpan) {\n elementSpan = 1;\n }\n if ((!Number.isInteger(elementSpan)) || (0 >= elementSpan)) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n super(-1, property);\n\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n this.elementSpan = elementSpan;\n }\n\n /** @override */\n isCount() {\n return true;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n\n /** @override */\n encode(src, b, offset) {\n return 0;\n }\n}\n\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\nclass OffsetLayout extends ExternalLayout {\n constructor(layout, offset, property) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (undefined === offset) {\n offset = 0;\n } else if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n\n super(layout.span, property || layout.property);\n\n /** The subordinated layout. */\n this.layout = layout;\n\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Buffer\n * being accessed. */\n this.offset = offset;\n }\n\n /** @override */\n isCount() {\n return ((this.layout instanceof UInt)\n || (this.layout instanceof UIntBE));\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.decode(b, offset + this.offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.encode(src, b, offset + this.offset);\n }\n}\n\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UInt extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readUIntLE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeUIntLE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UIntBE extends Layout {\n constructor(span, property) {\n super( span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readUIntBE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeUIntBE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Int extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readIntLE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeIntLE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass IntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readIntBE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeIntBE(src, offset, this.span);\n return this.span;\n }\n}\n\nconst V2E32 = Math.pow(2, 32);\n\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\nfunction divmodInt64(src) {\n const hi32 = Math.floor(src / V2E32);\n const lo32 = src - (hi32 * V2E32);\n return {hi32, lo32};\n}\n/* Reconstruct Number from quotient and non-negative remainder */\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const lo32 = b.readUInt32LE(offset);\n const hi32 = b.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const hi32 = b.readUInt32BE(offset);\n const lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const lo32 = b.readUInt32LE(offset);\n const hi32 = b.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const hi32 = b.readInt32BE(offset);\n const lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Float extends Layout {\n constructor(property) {\n super(4, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readFloatLE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeFloatLE(src, offset);\n return 4;\n }\n}\n\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass FloatBE extends Layout {\n constructor(property) {\n super(4, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readFloatBE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeFloatBE(src, offset);\n return 4;\n }\n}\n\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Double extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readDoubleLE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeDoubleLE(src, offset);\n return 8;\n }\n}\n\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass DoubleBE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readDoubleBE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeDoubleBE(src, offset);\n return 8;\n }\n}\n\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Sequence extends Layout {\n constructor(elementLayout, count, property) {\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n if (!(((count instanceof ExternalLayout) && count.isCount())\n || (Number.isInteger(count) && (0 <= count)))) {\n throw new TypeError('count must be non-negative integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if ((!(count instanceof ExternalLayout))\n && (0 < elementLayout.span)) {\n span = count * elementLayout.span;\n }\n\n super(span, property);\n\n /** The layout for individual elements of the sequence. */\n this.elementLayout = elementLayout;\n\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n this.count = count;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let span = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n } else {\n let idx = 0;\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const rv = [];\n let i = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n return rv;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const elo = this.elementLayout;\n const span = src.reduce((span, v) => {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n return span;\n }\n}\n\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\nclass Structure extends Layout {\n constructor(fields, property, decodePrefixes) {\n if (!(Array.isArray(fields)\n && fields.reduce((acc, v) => acc && (v instanceof Layout), true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n if (('boolean' === typeof property)\n && (undefined === decodePrefixes)) {\n decodePrefixes = property;\n property = undefined;\n }\n\n /* Verify absence of unnamed variable-length fields. */\n for (const fd of fields) {\n if ((0 > fd.span)\n && (undefined === fd.property)) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n\n let span = -1;\n try {\n span = fields.reduce((span, fd) => span + fd.getSpan(), 0);\n } catch (e) {\n }\n super(span, property);\n\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n this.fields = fields;\n\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n this.decodePrefixes = !!decodePrefixes;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let span = 0;\n try {\n span = this.fields.reduce((span, fd) => {\n const fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n } catch (e) {\n throw new RangeError('indeterminate span');\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n offset += fd.getSpan(b, offset);\n if (this.decodePrefixes\n && (b.length === offset)) {\n break;\n }\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const firstOffset = offset;\n let lastOffset = 0;\n let lastWrote = 0;\n for (const fd of this.fields) {\n let span = fd.span;\n lastWrote = (0 < span) ? span : 0;\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n return (lastOffset + lastWrote) - firstOffset;\n }\n\n /** @override */\n fromArray(values) {\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if ((undefined !== fd.property)\n && (0 < values.length)) {\n dest[fd.property] = values.shift();\n }\n }\n return dest;\n }\n\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n }\n\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n let offset = 0;\n for (const fd of this.fields) {\n if (fd.property === property) {\n return offset;\n }\n if (0 > fd.span) {\n offset = -1;\n } else if (0 <= offset) {\n offset += fd.span;\n }\n }\n }\n}\n\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\nclass UnionDiscriminator {\n constructor(property) {\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n this.property = property;\n }\n\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n decode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n encode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n}\n\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\nclass UnionLayoutDiscriminator extends UnionDiscriminator {\n constructor(layout, property) {\n if (!((layout instanceof ExternalLayout)\n && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n\n super(property || layout.property || 'variant');\n\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n this.layout = layout;\n }\n\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n}\n\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Union extends Layout {\n constructor(discr, defaultLayout, property) {\n const upv = ((discr instanceof UInt)\n || (discr instanceof UIntBE));\n if (upv) {\n discr = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n } else if ((discr instanceof ExternalLayout)\n && discr.isCount()) {\n discr = new UnionLayoutDiscriminator(discr);\n } else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator '\n + 'or an unsigned integer layout');\n }\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n if (!((null === defaultLayout)\n || (defaultLayout instanceof Layout))) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n let span = -1;\n if (defaultLayout) {\n span = defaultLayout.span;\n if ((0 <= span) && upv) {\n span += discr.layout.span;\n }\n }\n super(span, property);\n\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n this.discriminator = discr;\n\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n this.usesPrefixDiscriminator = upv;\n\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n this.defaultLayout = defaultLayout;\n\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n this.registry = {};\n\n /* Private variable used when invoking getSourceVariant */\n let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this);\n\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n this.getSourceVariant = function(src) {\n return boundGetSourceVariant(src);\n };\n\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n this.configGetSourceVariant = function(gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n const vlo = this.getVariant(b, offset);\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n return vlo.getSpan(b, offset);\n }\n\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisified rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n defaultGetSourceVariant(src) {\n if (src.hasOwnProperty(this.discriminator.property)) {\n if (this.defaultLayout\n && src.hasOwnProperty(this.defaultLayout.property)) {\n return undefined;\n }\n const vlo = this.registry[src[this.discriminator.property]];\n if (vlo\n && ((!vlo.layout)\n || src.hasOwnProperty(vlo.property))) {\n return vlo;\n }\n } else {\n for (const tag in this.registry) {\n const vlo = this.registry[tag];\n if (src.hasOwnProperty(vlo.property)) {\n return vlo;\n }\n }\n }\n throw new Error('unable to infer src variant');\n }\n\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let dest;\n const dlo = this.discriminator;\n const discr = dlo.decode(b, offset);\n let clo = this.registry[discr];\n if (undefined === clo) {\n let contentOffset = 0;\n clo = this.defaultLayout;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n dest[clo.property] = this.defaultLayout.decode(b, offset + contentOffset);\n } else {\n dest = clo.decode(b, offset);\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const vlo = this.getSourceVariant(src);\n if (undefined === vlo) {\n const dlo = this.discriminator;\n const clo = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dlo.encode(src[dlo.property], b, offset);\n return contentOffset + clo.encode(src[clo.property], b,\n offset + contentOffset);\n }\n return vlo.encode(src, b, offset);\n }\n\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n addVariant(variant, layout, property) {\n const rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Buffer)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Buffer}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n getVariant(vb, offset) {\n let variant = vb;\n if (Buffer.isBuffer(vb)) {\n if (undefined === offset) {\n offset = 0;\n }\n variant = this.discriminator.decode(vb, offset);\n }\n return this.registry[variant];\n }\n}\n\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\nclass VariantLayout extends Layout {\n constructor(union, variant, layout, property) {\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n if ((!Number.isInteger(variant)) || (0 > variant)) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n if (('string' === typeof layout)\n && (undefined === property)) {\n property = layout;\n layout = null;\n }\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if ((null !== union.defaultLayout)\n && (0 <= layout.span)\n && (layout.span > union.defaultLayout.span)) {\n throw new Error('variant span exceeds span of containing union');\n }\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n let span = union.span;\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n if ((0 <= span) && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n super(span, property);\n\n /** The {@link Union} to which this variant belongs. */\n this.union = union;\n\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n this.variant = variant;\n\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n this.layout = layout || null;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n return contentOffset + this.layout.getSpan(b, offset + contentOffset);\n }\n\n /** @override */\n decode(b, offset) {\n const dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n } else if (this.property) {\n dest[this.property] = true;\n } else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n return dest;\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout\n && (!src.hasOwnProperty(this.property))) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n this.union.discriminator.encode(this.variant, b, offset);\n let span = contentOffset;\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n if ((0 <= this.union.span)\n && (span > this.union.span)) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n return span;\n }\n\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n }\n}\n\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n return v;\n}\n\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass BitStructure extends Layout {\n constructor(word, msb, property) {\n if (!((word instanceof UInt)\n || (word instanceof UIntBE))) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n if (('string' === typeof msb)\n && (undefined === property)) {\n property = msb;\n msb = undefined;\n }\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n super(word.span, property);\n\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n this.word = word;\n\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n this.msb = !!msb;\n\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n this.fields = [];\n\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n let value = 0;\n this._packedSetValue = function(v) {\n value = fixBitwiseResult(v);\n return this;\n };\n this._packedGetValue = function() {\n return value;\n };\n }\n\n /** @override */\n decode(b, offset) {\n const dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(value);\n }\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n addField(bits, property) {\n const bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n // eslint-disable-next-line no-new-wrappers\n const bf = new Boolean(this, property);\n this.fields.push(bf);\n return bf;\n }\n\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n }\n}\n\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\nclass BitField {\n constructor(container, bits, property) {\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n if ((!Number.isInteger(bits)) || (0 >= bits)) {\n throw new TypeError('bits must be positive integer');\n }\n const totalBits = 8 * container.span;\n const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0);\n if ((bits + usedBits) > totalBits) {\n throw new Error('bits too long for span remainder ('\n + (totalBits - usedBits) + ' of '\n + totalBits + ' remain)');\n }\n\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n this.container = container;\n\n /** The span of this value in bits. */\n this.bits = bits;\n\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n this.valueMask = (1 << bits) - 1;\n if (32 === bits) { // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n this.start = usedBits;\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n decode() {\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(word & this.wordMask);\n const value = wordValue >>> this.start;\n return value;\n }\n\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n encode(value) {\n if ((!Number.isInteger(value))\n || (value !== fixBitwiseResult(value & this.valueMask))) {\n throw new TypeError(nameWithProperty('BitField.encode', this)\n + ' value must be integer not exceeding ' + this.valueMask);\n }\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(value << this.start);\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask)\n | wordValue);\n };\n}\n\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n/* eslint-disable no-extend-native */\nclass Boolean extends BitField {\n constructor(container, property) {\n super(container, 1, property);\n }\n\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n decode(b, offset) {\n return !!BitField.prototype.decode.call(this, b, offset);\n }\n\n /** @override */\n encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n return BitField.prototype.encode.call(this, value);\n }\n}\n/* eslint-enable no-extend-native */\n\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Buffer.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Blob extends Layout {\n constructor(length, property) {\n if (!(((length instanceof ExternalLayout) && length.isCount())\n || (Number.isInteger(length) && (0 <= length)))) {\n throw new TypeError('length must be positive integer '\n + 'or an unsigned integer ExternalLayout');\n }\n\n let span = -1;\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n super(span, property);\n\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n this.length = length;\n }\n\n /** @override */\n getSpan(b, offset) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return b.slice(offset, offset + span);\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n let span = this.length;\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n if (!(Buffer.isBuffer(src)\n && (span === src.length))) {\n throw new TypeError(nameWithProperty('Blob.encode', this)\n + ' requires (length ' + span + ') Buffer as src');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n b.write(src.toString('hex'), offset, span, 'hex');\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n return span;\n }\n}\n\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass CString extends Layout {\n constructor(property) {\n super(-1, property);\n }\n\n /** @override */\n getSpan(b, offset) {\n if (!Buffer.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n if (undefined === offset) {\n offset = 0;\n }\n let idx = offset;\n while ((idx < b.length) && (0 !== b[idx])) {\n idx += 1;\n }\n return 1 + idx - offset;\n }\n\n /** @override */\n decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.getSpan(b, offset);\n return b.slice(offset, offset + span - 1).toString('utf-8');\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n const srcb = new Buffer(src, 'utf8');\n const span = srcb.length;\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(b, offset);\n b[offset + span] = 0;\n return span + 1;\n }\n}\n\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UTF8 extends Layout {\n constructor(maxSpan, property) {\n if (('string' === typeof maxSpan)\n && (undefined === property)) {\n property = maxSpan;\n maxSpan = undefined;\n }\n if (undefined === maxSpan) {\n maxSpan = -1;\n } else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n\n super(-1, property);\n\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n this.maxSpan = maxSpan;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (!Buffer.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n if (undefined === offset) {\n offset = 0;\n }\n return b.length - offset;\n }\n\n /** @override */\n decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.getSpan(b, offset);\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n return b.slice(offset, offset + span).toString('utf-8');\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n const srcb = new Buffer(src, 'utf8');\n const span = srcb.length;\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(b, offset);\n return span;\n }\n}\n\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Constant extends Layout {\n constructor(value, property) {\n super(0, property);\n\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n this.value = value;\n }\n\n /** @override */\n decode(b, offset, dest) {\n return this.value;\n }\n\n /** @override */\n encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n}\n\nexports.ExternalLayout = ExternalLayout;\nexports.GreedyCount = GreedyCount;\nexports.OffsetLayout = OffsetLayout;\nexports.UInt = UInt;\nexports.UIntBE = UIntBE;\nexports.Int = Int;\nexports.IntBE = IntBE;\nexports.Float = Float;\nexports.FloatBE = FloatBE;\nexports.Double = Double;\nexports.DoubleBE = DoubleBE;\nexports.Sequence = Sequence;\nexports.Structure = Structure;\nexports.UnionDiscriminator = UnionDiscriminator;\nexports.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\nexports.Union = Union;\nexports.VariantLayout = VariantLayout;\nexports.BitStructure = BitStructure;\nexports.BitField = BitField;\nexports.Boolean = Boolean;\nexports.Blob = Blob;\nexports.CString = CString;\nexports.UTF8 = UTF8;\nexports.Constant = Constant;\n\n/** Factory for {@link GreedyCount}. */\nexports.greedy = ((elementSpan, property) => new GreedyCount(elementSpan, property));\n\n/** Factory for {@link OffsetLayout}. */\nexports.offset = ((layout, offset, property) => new OffsetLayout(layout, offset, property));\n\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\nexports.u8 = (property => new UInt(1, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16 = (property => new UInt(2, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24 = (property => new UInt(3, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32 = (property => new UInt(4, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40 = (property => new UInt(5, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48 = (property => new UInt(6, property));\n\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64 = (property => new NearUInt64(property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16be = (property => new UIntBE(2, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24be = (property => new UIntBE(3, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32be = (property => new UIntBE(4, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40be = (property => new UIntBE(5, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48be = (property => new UIntBE(6, property));\n\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64be = (property => new NearUInt64BE(property));\n\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\nexports.s8 = (property => new Int(1, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\nexports.s16 = (property => new Int(2, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\nexports.s24 = (property => new Int(3, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\nexports.s32 = (property => new Int(4, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\nexports.s40 = (property => new Int(5, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\nexports.s48 = (property => new Int(6, property));\n\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64 = (property => new NearInt64(property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\nexports.s16be = (property => new IntBE(2, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\nexports.s24be = (property => new IntBE(3, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\nexports.s32be = (property => new IntBE(4, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\nexports.s40be = (property => new IntBE(5, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\nexports.s48be = (property => new IntBE(6, property));\n\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64be = (property => new NearInt64BE(property));\n\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\nexports.f32 = (property => new Float(property));\n\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\nexports.f32be = (property => new FloatBE(property));\n\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\nexports.f64 = (property => new Double(property));\n\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\nexports.f64be = (property => new DoubleBE(property));\n\n/** Factory for {@link Structure} values. */\nexports.struct = ((fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes));\n\n/** Factory for {@link BitStructure} values. */\nexports.bits = ((word, msb, property) => new BitStructure(word, msb, property));\n\n/** Factory for {@link Sequence} values. */\nexports.seq = ((elementLayout, count, property) => new Sequence(elementLayout, count, property));\n\n/** Factory for {@link Union} values. */\nexports.union = ((discr, defaultLayout, property) => new Union(discr, defaultLayout, property));\n\n/** Factory for {@link UnionLayoutDiscriminator} values. */\nexports.unionLayoutDiscriminator = ((layout, property) => new UnionLayoutDiscriminator(layout, property));\n\n/** Factory for {@link Blob} values. */\nexports.blob = ((length, property) => new Blob(length, property));\n\n/** Factory for {@link CString} values. */\nexports.cstr = (property => new CString(property));\n\n/** Factory for {@link UTF8} values. */\nexports.utf8 = ((maxSpan, property) => new UTF8(maxSpan, property));\n\n/** Factory for {@link Constant} values. */\nexports.const = ((value, property) => new Constant(value, property));\n",null,null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.translateAddress = exports.validateAccounts = exports.toInstruction = exports.parseIdlErrors = void 0;\nconst web3_js_1 = require(\"@solana/web3.js\");\nfunction parseIdlErrors(idl) {\n const errors = new Map();\n if (idl.errors) {\n idl.errors.forEach((e) => {\n var _a;\n let msg = (_a = e.msg) !== null && _a !== void 0 ? _a : e.name;\n errors.set(e.code, msg);\n });\n }\n return errors;\n}\nexports.parseIdlErrors = parseIdlErrors;\n// Allow either IdLInstruction or IdlStateMethod since the types share fields.\nfunction toInstruction(idlIx, ...args) {\n if (idlIx.args.length != args.length) {\n throw new Error(\"Invalid argument length\");\n }\n const ix = {};\n let idx = 0;\n idlIx.args.forEach((ixArg) => {\n ix[ixArg.name] = args[idx];\n idx += 1;\n });\n return ix;\n}\nexports.toInstruction = toInstruction;\n// Throws error if any account required for the `ix` is not given.\nfunction validateAccounts(ixAccounts, accounts = {}) {\n ixAccounts.forEach((acc) => {\n if (\"accounts\" in acc) {\n validateAccounts(acc.accounts, accounts[acc.name]);\n }\n else {\n if (accounts[acc.name] === undefined) {\n throw new Error(`Invalid arguments: ${acc.name} not provided.`);\n }\n }\n });\n}\nexports.validateAccounts = validateAccounts;\n// Translates an address to a Pubkey.\nfunction translateAddress(address) {\n return address instanceof web3_js_1.PublicKey ? address : new web3_js_1.PublicKey(address);\n}\nexports.translateAddress = translateAddress;\n//# sourceMappingURL=common.js.map",null,null,null,null,null,null,null,null,"var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n",null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitArgsAndCtx = void 0;\nfunction splitArgsAndCtx(idlIx, args) {\n var _a, _b;\n let options = {};\n const inputLen = idlIx.args ? idlIx.args.length : 0;\n if (args.length > inputLen) {\n if (args.length !== inputLen + 1) {\n throw new Error(`provided too many arguments ${args} to instruction ${idlIx === null || idlIx === void 0 ? void 0 : idlIx.name} expecting: ${(_b = (_a = idlIx.args) === null || _a === void 0 ? void 0 : _a.map((a) => a.name)) !== null && _b !== void 0 ? _b : []}`);\n }\n options = args.pop();\n }\n return [args, options];\n}\nexports.splitArgsAndCtx = splitArgsAndCtx;\n//# sourceMappingURL=context.js.map",null,null,null,null,null,null,null,null,null,null,null,null,"import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (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}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\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}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\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}","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst local_logger_1 = __importDefault(require(\"./local.logger\"));\nconst provider_logger_1 = require(\"./provider.logger\");\nconst localLogger = new provider_logger_1.LoggingProvider(new local_logger_1.default());\nexports.default = localLogger;\n","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","import { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","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 /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_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 isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.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","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\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) patterns 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) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\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 case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\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 parseNumberSkeleton(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 case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\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 case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\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 (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\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 var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","'use strict';\n\nconst preserveCamelCase = string => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = Object.assign({\n\t\tpascalCase: false\n\t}, options);\n\n\tconst postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n\t}\n\n\tconst hasUpperCase = input !== input.toLowerCase();\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input);\n\t}\n\n\tinput = input\n\t\t.replace(/^[_.\\- ]+/, '')\n\t\t.toLowerCase()\n\t\t.replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n\t\t.replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n\n\treturn postProcess(input);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n\n return acc;\n }, {});\n }\n\n const output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\n\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n\n const breakpointsInOrder = breakpointsInput == null ? void 0 : (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n\n if (isBreakpointUnused) {\n delete acc[key];\n }\n\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n} // compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\n\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n\n if (keys.length === 0) {\n return breakpointValues;\n }\n\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous] || breakpointValues;\n previous = breakpoint;\n }\n\n return acc;\n }, {});\n}\nexport default breakpoints;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\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 Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory, createPath } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext\n};\n\nexport type {\n Location,\n Path,\n To,\n NavigationType,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n\n if (match) {\n // The match may be something like 'Object.createEmotionProps'\n var parts = match[1].split('.');\n return parts[parts.length - 1];\n } // Safari / Firefox\n\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return match[1];\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"container\", \"direction\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementAcceptingRef, HTMLElementType, chainPropTypes } from '@mui/utils';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport useTheme from '../styles/useTheme';\nimport { duration, easing } from '../styles/createTransitions';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport { ownerWindow } from '../utils'; // Translate the node so it can't be seen on the screen.\n// Later, we're going to translate the node back to its original location with `none`.\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction getTranslateValue(direction, node, resolvedContainer) {\n const rect = node.getBoundingClientRect();\n const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n\n let offsetX = 0;\n let offsetY = 0;\n\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n\n if (direction === 'left') {\n if (containerRect) {\n return `translateX(${containerRect.right + offsetX - rect.left}px)`;\n }\n\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n }\n\n if (direction === 'right') {\n if (containerRect) {\n return `translateX(-${rect.right - containerRect.left - offsetX}px)`;\n }\n\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n }\n\n if (direction === 'up') {\n if (containerRect) {\n return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;\n }\n\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n } // direction === 'down'\n\n\n if (containerRect) {\n return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n}\n\nfunction resolveContainer(containerPropProp) {\n return typeof containerPropProp === 'function' ? containerPropProp() : containerPropProp;\n}\n\nexport function setTranslateValue(direction, node, containerProp) {\n const resolvedContainer = resolveContainer(containerProp);\n const transform = getTranslateValue(direction, node, resolvedContainer);\n\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\nconst defaultEasing = {\n enter: easing.easeOut,\n exit: easing.sharp\n};\nconst defaultTimeout = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * The Slide transition is used by the [Drawer](/components/drawers/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n container: containerProp,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const childrenRef = React.useRef(null);\n const handleRefIntermediary = useForkRef(children.ref, childrenRef);\n const handleRef = useForkRef(handleRefIntermediary, ref);\n\n const normalizedTransitionCallback = callback => isAppearing => {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n setTranslateValue(direction, node, containerProp);\n reflow(node);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps));\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n setTranslateValue(direction, node, containerProp);\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(node => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n\n if (onExited) {\n onExited(node);\n }\n });\n\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(childrenRef.current, next);\n }\n };\n\n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n }, [direction, containerProp]);\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n\n const handleResize = debounce(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n });\n const containerWindow = ownerWindow(childrenRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp, containerProp]);\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n appear: appear,\n in: inProp,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, children.props.style)\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the container the Slide is transitioning from.\n */\n container: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open) {\n const resolvedContainer = resolveContainer(props.container);\n\n if (resolvedContainer && resolvedContainer.nodeType === 1) {\n const box = resolvedContainer.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== 'function' || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'It should be an HTML element instance.'].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * Direction the child node will enter from.\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n * @default {\n * enter: easing.easeOut,\n * exit: easing.sharp,\n * }\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: duration.enteringScreen,\n * exit: duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCollapseUtilityClass(slot) {\n return generateUtilityClass('MuiCollapse', slot);\n}\nconst collapseClasses = generateUtilityClasses('MuiCollapse', ['root', 'horizontal', 'vertical', 'entered', 'hidden', 'wrapper', 'wrapperInner']);\nexport default collapseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"addEndListener\", \"children\", \"className\", \"collapsedSize\", \"component\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"orientation\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { duration } from '../styles/createTransitions';\nimport { getTransitionProps } from '../transitions/utils';\nimport useTheme from '../styles/useTheme';\nimport { useForkRef } from '../utils';\nimport { getCollapseUtilityClass } from './collapseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `${orientation}`],\n entered: ['entered'],\n hidden: ['hidden'],\n wrapper: ['wrapper', `${orientation}`],\n wrapperInner: ['wrapperInner', `${orientation}`]\n };\n return composeClasses(slots, getCollapseUtilityClass, classes);\n};\n\nconst CollapseRoot = styled('div', {\n name: 'MuiCollapse',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.state === 'entered' && styles.entered, ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && styles.hidden];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height')\n}, ownerState.orientation === 'horizontal' && {\n height: 'auto',\n width: 0,\n transition: theme.transitions.create('width')\n}, ownerState.state === 'entered' && _extends({\n height: 'auto',\n overflow: 'visible'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto'\n}), ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && {\n visibility: 'hidden'\n}));\nconst CollapseWrapper = styled('div', {\n name: 'MuiCollapse',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => styles.wrapper\n})(({\n ownerState\n}) => _extends({\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex',\n width: '100%'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto',\n height: '100%'\n}));\nconst CollapseWrapperInner = styled('div', {\n name: 'MuiCollapse',\n slot: 'WrapperInner',\n overridesResolver: (props, styles) => styles.wrapperInner\n})(({\n ownerState\n}) => _extends({\n width: '100%'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto',\n height: '100%'\n}));\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/components/steppers/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCollapse'\n });\n\n const {\n addEndListener,\n children,\n className,\n collapsedSize: collapsedSizeProp = '0px',\n component,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n orientation = 'vertical',\n style,\n timeout = duration.standard,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n orientation,\n collapsedSize: collapsedSizeProp\n });\n\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const timer = React.useRef();\n const wrapperRef = React.useRef(null);\n const autoTransitionDuration = React.useRef();\n const collapsedSize = typeof collapsedSizeProp === 'number' ? `${collapsedSizeProp}px` : collapsedSizeProp;\n const isHorizontal = orientation === 'horizontal';\n const size = isHorizontal ? 'width' : 'height';\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(ref, nodeRef);\n\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n\n const getWrapperSize = () => wrapperRef.current ? wrapperRef.current[isHorizontal ? 'clientWidth' : 'clientHeight'] : 0;\n\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n if (wrapperRef.current && isHorizontal) {\n // Set absolute position to get the size of collapsed content\n wrapperRef.current.style.position = 'absolute';\n }\n\n node.style[size] = collapsedSize;\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const wrapperSize = getWrapperSize();\n\n if (wrapperRef.current && isHorizontal) {\n // After the size is read reset the position back to default\n wrapperRef.current.style.position = '';\n }\n\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n\n if (timeout === 'auto') {\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n\n node.style[size] = `${wrapperSize}px`;\n node.style.transitionTimingFunction = transitionTimingFunction;\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback((node, isAppearing) => {\n node.style[size] = 'auto';\n\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n const handleExit = normalizedTransitionCallback(node => {\n node.style[size] = `${getWrapperSize()}px`;\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleExiting = normalizedTransitionCallback(node => {\n const wrapperSize = getWrapperSize();\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n\n if (timeout === 'auto') {\n // TODO: rename getAutoHeightDuration to something more generic (width support)\n // Actually it just calculates animation duration based on size\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n\n node.style[size] = collapsedSize;\n node.style.transitionTimingFunction = transitionTimingFunction;\n\n if (onExiting) {\n onExiting(node);\n }\n });\n\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTransitionDuration.current || 0);\n }\n\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => /*#__PURE__*/_jsx(CollapseRoot, _extends({\n as: component,\n className: clsx(classes.root, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: _extends({\n [isHorizontal ? 'minWidth' : 'minHeight']: collapsedSize\n }, style),\n ownerState: _extends({}, ownerState, {\n state\n }),\n ref: handleRef\n }, childProps, {\n children: /*#__PURE__*/_jsx(CollapseWrapper, {\n ownerState: _extends({}, ownerState, {\n state\n }),\n className: classes.wrapper,\n ref: wrapperRef,\n children: /*#__PURE__*/_jsx(CollapseWrapperInner, {\n ownerState: _extends({}, ownerState, {\n state\n }),\n className: classes.wrapperInner,\n children: children\n })\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The width (horizontal) or height (vertical) of the container when collapsed.\n * @default '0px'\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * The transition orientation.\n * @default 'vertical'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default duration.standard\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nCollapse.muiSupportAuto = true;\nexport default Collapse;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils'; // TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click Away Listener](https://mui.com/components/click-away-listener/)\n * - [Menus](https://mui.com/components/menus/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef( // @ts-expect-error TODO upstream fix\n children.ref, nodeRef); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains( // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains( // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n\n const childrenProps = {\n ref: handleRef\n };\n\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [handleClickAway, touchEvent]);\n\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', false]),\n\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\n\nexport default ClickAwayListener;","import React from 'react';\nimport { ProviderContext } from '.';\n\n// @ts-ignore\nexport default React.createContext();\n","import Slide from '@mui/material/Slide';\nimport { SnackbarClassKey } from '@mui/material/Snackbar';\nimport { CloseReason, ContainerClassKey, SnackbarProviderProps, VariantType, SnackbarOrigin, VariantClassKey } from '../index';\nimport { SnackbarItemProps } from '../SnackbarItem';\nimport { Snack } from '../SnackbarProvider';\n\nexport const allClasses: {\n mui: Record;\n container: Record;\n} = {\n mui: {\n root: {},\n anchorOriginTopCenter: {},\n anchorOriginBottomCenter: {},\n anchorOriginTopRight: {},\n anchorOriginBottomRight: {},\n anchorOriginTopLeft: {},\n anchorOriginBottomLeft: {},\n },\n container: {\n containerRoot: {},\n containerAnchorOriginTopCenter: {},\n containerAnchorOriginBottomCenter: {},\n containerAnchorOriginTopRight: {},\n containerAnchorOriginBottomRight: {},\n containerAnchorOriginTopLeft: {},\n containerAnchorOriginBottomLeft: {},\n },\n};\n\nexport const MESSAGES = {\n NO_PERSIST_ALL: 'WARNING - notistack: Reached maxSnack while all enqueued snackbars have \\'persist\\' flag. Notistack will dismiss the oldest snackbar anyway to allow other ones in the queue to be presented.',\n};\n\nexport const SNACKBAR_INDENTS = {\n view: { default: 20, dense: 4 },\n snackbar: { default: 6, dense: 2 },\n};\n\nexport const DEFAULTS = {\n maxSnack: 3,\n dense: false,\n hideIconVariant: false,\n variant: 'default' as VariantType,\n autoHideDuration: 5000,\n anchorOrigin: { vertical: 'bottom', horizontal: 'left' } as SnackbarOrigin,\n TransitionComponent: Slide,\n transitionDuration: {\n enter: 225,\n exit: 195,\n },\n};\n\nexport const capitalise = (text: string): string => text.charAt(0).toUpperCase() + text.slice(1);\n\nexport const originKeyExtractor = (anchor: Snack['anchorOrigin']): string => (\n `${capitalise(anchor.vertical)}${capitalise(anchor.horizontal)}`\n);\n\n/**\n * Omit SnackbarContainer class keys that are not needed for SnackbarItem\n */\nexport const omitContainerKeys = (classes: SnackbarProviderProps['classes']): SnackbarItemProps['classes'] => (\n // @ts-ignore\n Object.keys(classes).filter(key => !allClasses.container[key]).reduce((obj, key) => ({ ...obj, [key]: classes[key] }), {})\n);\n\nexport const REASONS: { [key: string]: CloseReason } = {\n TIMEOUT: 'timeout',\n CLICKAWAY: 'clickaway',\n MAXSNACK: 'maxsnack',\n INSTRUCTED: 'instructed',\n};\n\n/** Tranforms classes name */\nexport const transformer = {\n toContainerAnchorOrigin: (origin: string) => `containerAnchorOrigin${origin}` as ContainerClassKey,\n toAnchorOrigin: ({ vertical, horizontal }: SnackbarOrigin) => (\n `anchorOrigin${capitalise(vertical)}${capitalise(horizontal)}` as SnackbarClassKey\n ),\n toVariant: (variant: VariantType) => `variant${capitalise(variant)}` as VariantClassKey,\n};\n\nexport const isDefined = (value: string | null | undefined | number): boolean => (!!value || value === 0);\n\nconst numberOrNull = (numberish?: number | null) => (\n typeof numberish === 'number' || numberish === null\n);\n\n// @ts-ignore\nexport const merge = (options, props, defaults) => (name: keyof Snack): any => {\n if (name === 'autoHideDuration') {\n if (numberOrNull(options.autoHideDuration)) return options.autoHideDuration;\n if (numberOrNull(props.autoHideDuration)) return props.autoHideDuration;\n return DEFAULTS.autoHideDuration;\n }\n\n return options[name] || props[name] || defaults[name];\n};\n\nexport function objectMerge(options = {}, props = {}, defaults = {}) {\n return {\n ...defaults,\n ...props,\n ...options,\n };\n}\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { SnackbarContentProps } from '../index';\n\nconst componentName = 'SnackbarContent';\n\nconst classes = {\n root: `${componentName}-root`,\n};\n\nconst Root = styled('div')(({ theme }) => ({\n [`&.${classes.root}`]: {\n display: 'flex',\n flexWrap: 'wrap',\n flexGrow: 1,\n [theme.breakpoints.up('sm')]: {\n flexGrow: 'initial',\n minWidth: 288,\n },\n },\n}));\n\nconst SnackbarContent = forwardRef(({ className, ...props }, ref) => (\n \n));\n\nexport default SnackbarContent;\n","import { Snack } from '../SnackbarProvider';\n\nconst DIRECTION = {\n right: 'left',\n left: 'right',\n bottom: 'up',\n top: 'down',\n} as const;\nexport type DirectionType = typeof DIRECTION[keyof typeof DIRECTION]\n\nexport const getTransitionDirection = (anchorOrigin: Snack['anchorOrigin']): DirectionType => {\n if (anchorOrigin.horizontal !== 'center') {\n return DIRECTION[anchorOrigin.horizontal];\n }\n return DIRECTION[anchorOrigin.vertical];\n};\n","import React from 'react';\nimport SvgIcon, { SvgIconProps } from '@mui/material/SvgIcon';\nimport { IconVariant } from '../index';\n\ntype Icon = (props: SvgIconProps) => JSX.Element;\n\nconst CheckIcon: Icon = props => (\n \n \n \n);\n\nconst WarningIcon: Icon = props => (\n \n \n \n);\n\nconst ErrorIcon: Icon = props => (\n \n \n \n);\n\nconst InfoIcon: Icon = props => (\n \n \n \n);\n\nconst iconStyles = {\n fontSize: 20,\n marginInlineEnd: 8,\n};\n\nconst defaultIconVariants: IconVariant = {\n default: undefined,\n success: ,\n warning: ,\n error: ,\n info: ,\n};\n\nexport default defaultIconVariants;\n","/**\n * @link https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/utils/createChainedFunction.js\n */\nexport default function createChainedFunction(funcs, extraArg) {\n return funcs.reduce((acc, func) => {\n if (func == null) return acc;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n // eslint-disable-next-line no-console\n console.error('Invalid Argument Type. must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction(...args) {\n const argums = [...args];\n if (extraArg && argums.indexOf(extraArg) === -1) {\n argums.push(extraArg);\n }\n acc.apply(this, argums);\n func.apply(this, argums);\n };\n }, () => { });\n}\n","/**\n * @link https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/utils/useEventCallback.js\n */\nimport * as React from 'react';\n\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nexport default function useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) => (0, ref.current)(...args), []);\n}\n","/**\n * @link https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Snackbar/Snackbar.js\n */\nimport * as React from 'react';\nimport ClickAwayListener from '@mui/material/ClickAwayListener';\nimport { REASONS } from '../utils/constants';\nimport useEventCallback from '../utils/useEventCallback';\n\nconst Snackbar = React.forwardRef((props, ref) => {\n const {\n children,\n autoHideDuration,\n ClickAwayListenerProps,\n disableWindowBlurListener = false,\n onClose,\n onMouseEnter,\n onMouseLeave,\n open,\n resumeHideDuration,\n ...other\n } = props;\n\n const timerAutoHide = React.useRef();\n\n const handleClose = useEventCallback((...args) => {\n if (onClose) {\n onClose(...args);\n }\n });\n\n const setAutoHideTimer = useEventCallback((autoHideDurationParam) => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose(null, REASONS.TIMEOUT);\n }, autoHideDurationParam);\n });\n\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n\n /**\n * Pause the timer when the user is interacting with the Snackbar\n * or when the user hide the window.\n */\n const handlePause = () => {\n clearTimeout(timerAutoHide.current);\n };\n\n /**\n * Restart the timer when the user is no longer interacting with the Snackbar\n * or when the window is shown back.\n */\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n const handleMouseEnter = (event) => {\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n handlePause();\n };\n\n const handleMouseLeave = (event) => {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n handleResume();\n };\n\n const handleClickAway = (event) => {\n if (onClose) {\n onClose(event, REASONS.CLICKAWAY);\n }\n };\n\n React.useEffect(() => {\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, open]);\n\n return (\n \n
\n {children}\n
\n
\n );\n});\n\nexport default Snackbar;\n","import React, { useState, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport { emphasize, styled } from '@mui/material/styles';\nimport Collapse from '@mui/material/Collapse';\nimport type { SnackbarClassKey } from '@mui/material';\nimport SnackbarContent from '../SnackbarContent';\nimport { getTransitionDirection } from './SnackbarItem.util';\nimport { REASONS, objectMerge, DEFAULTS, transformer } from '../utils/constants';\nimport { SharedProps, RequiredBy, TransitionHandlerProps, SnackbarProviderProps as ProviderProps, ClassNameMap } from '../index';\nimport defaultIconVariants from '../utils/defaultIconVariants';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport { Snack } from '../SnackbarProvider';\nimport Snackbar from './Snackbar';\n\nconst componentName = 'SnackbarItem';\n\nconst classes = {\n contentRoot: `${componentName}-contentRoot`,\n lessPadding: `${componentName}-lessPadding`,\n variantSuccess: `${componentName}-variantSuccess`,\n variantError: `${componentName}-variantError`,\n variantInfo: `${componentName}-variantInfo`,\n variantWarning: `${componentName}-variantWarning`,\n message: `${componentName}-message`,\n action: `${componentName}-action`,\n wrappedRoot: `${componentName}-wrappedRoot`,\n};\n\nconst StyledSnackbar = styled(Snackbar)(({ theme }) => {\n const mode = theme.palette.mode || theme.palette.type;\n const backgroundColor = emphasize(theme.palette.background.default, mode === 'light' ? 0.8 : 0.98);\n\n return {\n [`&.${classes.wrappedRoot}`]: {\n position: 'relative',\n transform: 'translateX(0)',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n [`.${classes.contentRoot}`]: {\n ...theme.typography.body2,\n backgroundColor,\n color: theme.palette.getContrastText(backgroundColor),\n alignItems: 'center',\n padding: '6px 16px',\n borderRadius: '4px',\n boxShadow: '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\n },\n [`.${classes.lessPadding}`]: {\n paddingLeft: 8 * 2.5,\n },\n [`.${classes.variantSuccess}`]: {\n backgroundColor: '#43a047', // green\n color: '#fff',\n },\n [`.${classes.variantError}`]: {\n backgroundColor: '#d32f2f', // dark red\n color: '#fff',\n },\n [`.${classes.variantInfo}`]: {\n backgroundColor: '#2196f3', // nice blue\n color: '#fff',\n },\n [`.${classes.variantWarning}`]: {\n backgroundColor: '#ff9800', // amber\n color: '#fff',\n },\n [`.${classes.message}`]: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 0',\n },\n [`.${classes.action}`]: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8,\n },\n };\n});\n\ntype RemovedProps =\n | 'variant' // the one received from Provider is processed and passed to snack prop\n | 'anchorOrigin' // same as above\n | 'autoHideDuration' // same as above\n | 'preventDuplicate' // the one recevied from enqueueSnackbar is processed in provider, therefore shouldn't be passed to SnackbarItem */\n\nexport interface SnackbarItemProps extends RequiredBy, 'onEntered' | 'onExited' | 'onClose'> {\n snack: Snack;\n dense: ProviderProps['dense'];\n iconVariant: ProviderProps['iconVariant'];\n hideIconVariant: ProviderProps['hideIconVariant'];\n classes: Partial>;\n}\n\nconst SnackbarItem: React.FC = ({ classes: propClasses, ...props }) => {\n const timeout = useRef>();\n const [collapsed, setCollapsed] = useState(true);\n\n useEffect(() => (): void => {\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n }, []);\n\n const handleClose = createChainedFunction([props.snack.onClose, props.onClose], props.snack.key);\n\n const handleEntered: TransitionHandlerProps['onEntered'] = () => {\n if (props.snack.requestClose) {\n handleClose(null, REASONS.INSTRCUTED);\n }\n };\n\n const handleExitedScreen = (): void => {\n timeout.current = setTimeout(() => {\n setCollapsed(!collapsed);\n }, 125);\n };\n\n const {\n style,\n dense,\n ariaAttributes: otherAriaAttributes,\n className: otherClassName,\n hideIconVariant,\n iconVariant,\n snack,\n action: otherAction,\n content: otherContent,\n TransitionComponent: otherTranComponent,\n TransitionProps: otherTranProps,\n transitionDuration: otherTranDuration,\n onEnter: ignoredOnEnter,\n onEntered: ignoredOnEntered,\n onEntering: ignoredOnEntering,\n onExit: ignoredOnExit,\n onExited: ignoredOnExited,\n onExiting: ignoredOnExiting,\n ...other\n } = props;\n\n const {\n persist,\n key,\n open,\n entered,\n requestClose,\n className: singleClassName,\n variant,\n content: singleContent,\n action: singleAction,\n ariaAttributes: singleAriaAttributes,\n anchorOrigin,\n message: snackMessage,\n TransitionComponent: singleTranComponent,\n TransitionProps: singleTranProps,\n transitionDuration: singleTranDuration,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n ...singleSnackProps\n } = snack;\n\n const icon = {\n ...defaultIconVariants,\n ...iconVariant,\n }[variant];\n\n const ariaAttributes = {\n 'aria-describedby': 'notistack-snackbar',\n ...objectMerge(singleAriaAttributes, otherAriaAttributes),\n };\n\n const TransitionComponent = singleTranComponent || otherTranComponent || DEFAULTS.TransitionComponent;\n const transitionDuration = objectMerge(singleTranDuration, otherTranDuration, DEFAULTS.transitionDuration);\n const transitionProps = {\n direction: getTransitionDirection(anchorOrigin),\n ...objectMerge(singleTranProps, otherTranProps),\n };\n\n let action = singleAction || otherAction;\n if (typeof action === 'function') {\n action = action(key);\n }\n\n let content = singleContent || otherContent;\n if (typeof content === 'function') {\n content = content(key, snack.message);\n }\n\n // eslint-disable-next-line operator-linebreak\n const callbacks: { [key in keyof TransitionHandlerProps]?: any } =\n ['onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].reduce((acc, cbName) => ({\n ...acc,\n [cbName]: createChainedFunction([\n props.snack[cbName as keyof Snack],\n props[cbName as keyof SnackbarItemProps],\n ], props.snack.key),\n }), {});\n\n return (\n \n \n \n {/* @ts-ignore */}\n {content || (\n \n
\n {!hideIconVariant ? icon : null}\n {snackMessage}\n
\n {action && (\n
{action}
\n )}\n \n )}\n \n \n \n );\n};\n\nexport default SnackbarItem;\n","import React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { SNACKBAR_INDENTS } from './utils/constants';\nimport { SnackbarProviderProps } from '.';\n\nconst collapse = {\n // Material-UI 4.12.x and above uses MuiCollapse-root; earlier versions use\n // Mui-Collapse-container. https://github.com/mui-org/material-ui/pull/24084\n container: '& > .MuiCollapse-container, & > .MuiCollapse-root',\n wrapper: '& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper',\n};\n\nconst xsWidthMargin = 16;\n\nconst componentName = 'SnackbarContainer';\n\nconst classes = {\n root: `${componentName}-root`,\n rootDense: `${componentName}-rootDense`,\n top: `${componentName}-top`,\n bottom: `${componentName}-bottom`,\n left: `${componentName}-left`,\n right: `${componentName}-right`,\n center: `${componentName}-center`,\n};\n\nconst Root = styled('div')(({ theme }) => ({\n [`&.${classes.root}`]: {\n boxSizing: 'border-box',\n display: 'flex',\n maxHeight: '100%',\n position: 'fixed',\n zIndex: theme.zIndex.snackbar,\n height: 'auto',\n width: 'auto',\n transition: 'top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms',\n // container itself is invisible and should not block clicks, clicks should be passed to its children\n pointerEvents: 'none',\n [collapse.container]: {\n pointerEvents: 'all',\n },\n [collapse.wrapper]: {\n padding: `${SNACKBAR_INDENTS.snackbar.default}px 0px`,\n transition: 'padding 300ms ease 0ms',\n },\n maxWidth: `calc(100% - ${SNACKBAR_INDENTS.view.default * 2}px)`,\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n maxWidth: `calc(100% - ${xsWidthMargin * 2}px)`,\n },\n },\n [`&.${classes.rootDense}`]: {\n [collapse.wrapper]: {\n padding: `${SNACKBAR_INDENTS.snackbar.dense}px 0px`,\n },\n },\n [`&.${classes.top}`]: {\n top: SNACKBAR_INDENTS.view.default - SNACKBAR_INDENTS.snackbar.default,\n flexDirection: 'column',\n },\n [`&.${classes.bottom}`]: {\n bottom: SNACKBAR_INDENTS.view.default - SNACKBAR_INDENTS.snackbar.default,\n flexDirection: 'column-reverse',\n },\n [`&.${classes.left}`]: {\n left: SNACKBAR_INDENTS.view.default,\n [theme.breakpoints.up('sm')]: {\n alignItems: 'flex-start',\n },\n [theme.breakpoints.down('sm')]: {\n left: `${xsWidthMargin}px`,\n },\n },\n [`&.${classes.right}`]: {\n right: SNACKBAR_INDENTS.view.default,\n [theme.breakpoints.up('sm')]: {\n alignItems: 'flex-end',\n },\n [theme.breakpoints.down('sm')]: {\n right: `${xsWidthMargin}px`,\n },\n },\n [`&.${classes.center}`]: {\n left: '50%',\n transform: 'translateX(-50%)',\n [theme.breakpoints.up('sm')]: {\n alignItems: 'center',\n },\n },\n}));\n\ninterface SnackbarContainerProps {\n children: JSX.Element | JSX.Element[];\n className?: string;\n dense: SnackbarProviderProps['dense'];\n anchorOrigin: NonNullable;\n}\n\nconst SnackbarContainer: React.FC = (props) => {\n const { className, anchorOrigin, dense, ...other } = props;\n\n const combinedClassname = clsx(\n classes[anchorOrigin.vertical],\n classes[anchorOrigin.horizontal],\n { [classes.rootDense]: dense },\n classes.root, // root should come after others to override maxWidth\n className,\n );\n\n return (\n \n );\n};\n\nexport default React.memo(SnackbarContainer);\n","import React, { Component } from 'react';\nimport { createPortal } from 'react-dom';\nimport clsx from 'clsx';\nimport SnackbarContext from './SnackbarContext';\nimport { MESSAGES, REASONS, originKeyExtractor, omitContainerKeys, DEFAULTS, merge, transformer, isDefined } from './utils/constants';\nimport SnackbarItem from './SnackbarItem';\nimport SnackbarContainer from './SnackbarContainer';\nimport warning from './utils/warning';\nimport { SnackbarProviderProps, SnackbarKey, SnackbarMessage, OptionsObject, RequiredBy, ProviderContext, TransitionHandlerProps } from '.';\nimport createChainedFunction from './utils/createChainedFunction';\n\ntype Reducer = (state: State) => State;\ntype SnacksByPosition = { [key: string]: Snack[] };\n\nexport interface Snack extends RequiredBy {\n message: SnackbarMessage;\n open: boolean;\n entered: boolean;\n requestClose: boolean;\n}\n\ninterface State {\n snacks: Snack[];\n queue: Snack[];\n contextValue: ProviderContext;\n}\n\nclass SnackbarProvider extends Component {\n constructor(props: SnackbarProviderProps) {\n super(props);\n this.state = {\n snacks: [],\n queue: [], // eslint-disable-line react/no-unused-state\n contextValue: {\n enqueueSnackbar: this.enqueueSnackbar.bind(this),\n closeSnackbar: this.closeSnackbar.bind(this),\n },\n };\n }\n\n get maxSnack(): number {\n return this.props.maxSnack || DEFAULTS.maxSnack;\n }\n\n /**\n * Adds a new snackbar to the queue to be presented.\n * Returns generated or user defined key referencing the new snackbar or null\n */\n enqueueSnackbar = (message: SnackbarMessage, opts: OptionsObject = {}): SnackbarKey => {\n const {\n key,\n preventDuplicate,\n ...options\n } = opts;\n\n const hasSpecifiedKey = isDefined(key);\n const id = hasSpecifiedKey ? (key as SnackbarKey) : new Date().getTime() + Math.random();\n\n const merger = merge(options, this.props, DEFAULTS);\n const snack: Snack = {\n key: id,\n ...options,\n message,\n open: true,\n entered: false,\n requestClose: false,\n variant: merger('variant'),\n anchorOrigin: merger('anchorOrigin'),\n autoHideDuration: merger('autoHideDuration'),\n };\n\n if (options.persist) {\n snack.autoHideDuration = undefined;\n }\n\n this.setState((state) => {\n if ((preventDuplicate === undefined && this.props.preventDuplicate) || preventDuplicate) {\n const compareFunction = (item: Snack): boolean => (\n hasSpecifiedKey ? item.key === key : item.message === message\n );\n\n const inQueue = state.queue.findIndex(compareFunction) > -1;\n const inView = state.snacks.findIndex(compareFunction) > -1;\n if (inQueue || inView) {\n return state;\n }\n }\n\n return this.handleDisplaySnack({\n ...state,\n queue: [...state.queue, snack],\n });\n });\n\n return id;\n };\n\n /**\n * Reducer: Display snack if there's space for it. Otherwise, immediately\n * begin dismissing the oldest message to start showing the new one.\n */\n handleDisplaySnack: Reducer = (state) => {\n const { snacks } = state;\n if (snacks.length >= this.maxSnack) {\n return this.handleDismissOldest(state);\n }\n return this.processQueue(state);\n };\n\n /**\n * Reducer: Display items (notifications) in the queue if there's space for them.\n */\n processQueue: Reducer = (state) => {\n const { queue, snacks } = state;\n if (queue.length > 0) {\n return {\n ...state,\n snacks: [...snacks, queue[0]],\n queue: queue.slice(1, queue.length),\n };\n }\n return state;\n };\n\n /**\n * Reducer: Hide oldest snackbar on the screen because there exists a new one which we have to display.\n * (ignoring the one with 'persist' flag. i.e. explicitly told by user not to get dismissed).\n *\n * Note 1: If there is already a message leaving the screen, no new messages are dismissed.\n * Note 2: If the oldest message has not yet entered the screen, only a request to close the\n * snackbar is made. Once it entered the screen, it will be immediately dismissed.\n */\n handleDismissOldest: Reducer = (state) => {\n if (state.snacks.some(item => !item.open || item.requestClose)) {\n return state;\n }\n\n let popped = false;\n let ignore = false;\n\n const persistentCount = state.snacks.reduce((acc, current) => (\n acc + (current.open && current.persist ? 1 : 0)\n ), 0);\n\n if (persistentCount === this.maxSnack) {\n warning(MESSAGES.NO_PERSIST_ALL);\n ignore = true;\n }\n\n const snacks = state.snacks.map((item) => {\n if (!popped && (!item.persist || ignore)) {\n popped = true;\n\n if (!item.entered) {\n return {\n ...item,\n requestClose: true,\n };\n }\n\n if (item.onClose) item.onClose(null, REASONS.MAXSNACK, item.key);\n if (this.props.onClose) this.props.onClose(null, REASONS.MAXSNACK, item.key);\n\n return {\n ...item,\n open: false,\n };\n }\n\n return { ...item };\n });\n\n return { ...state, snacks };\n };\n\n /**\n * Set the entered state of the snackbar with the given key.\n */\n handleEnteredSnack: TransitionHandlerProps['onEntered'] = (node, isAppearing, key) => {\n if (!isDefined(key)) {\n throw new Error('handleEnteredSnack Cannot be called with undefined key');\n }\n\n this.setState(({ snacks }) => ({\n snacks: snacks.map(item => (\n item.key === key ? { ...item, entered: true } : { ...item }\n )),\n }));\n }\n\n /**\n * Hide a snackbar after its timeout.\n */\n handleCloseSnack: TransitionHandlerProps['onClose'] = (event, reason, key) => {\n // should not use createChainedFunction for onClose.\n // because this.closeSnackbar called this function\n if (this.props.onClose) {\n this.props.onClose(event, reason, key);\n }\n\n if (reason === REASONS.CLICKAWAY) return;\n const shouldCloseAll = key === undefined;\n\n this.setState(({ snacks, queue }) => ({\n snacks: snacks.map((item) => {\n if (!shouldCloseAll && item.key !== key) {\n return { ...item };\n }\n\n return item.entered\n ? { ...item, open: false }\n : { ...item, requestClose: true };\n }),\n queue: queue.filter(item => item.key !== key), // eslint-disable-line react/no-unused-state\n }));\n };\n\n /**\n * Close snackbar with the given key\n */\n closeSnackbar: ProviderContext['closeSnackbar'] = (key) => {\n // call individual snackbar onClose callback passed through options parameter\n const toBeClosed = this.state.snacks.find(item => item.key === key);\n if (isDefined(key) && toBeClosed && toBeClosed.onClose) {\n toBeClosed.onClose(null, REASONS.INSTRUCTED, key);\n }\n\n this.handleCloseSnack(null, REASONS.INSTRUCTED, key);\n }\n\n /**\n * When we set open attribute of a snackbar to false (i.e. after we hide a snackbar),\n * it leaves the screen and immediately after leaving animation is done, this method\n * gets called. We remove the hidden snackbar from state and then display notifications\n * waiting in the queue (if any). If after this process the queue is not empty, the\n * oldest message is dismissed.\n */\n // @ts-ignore\n handleExitedSnack: TransitionHandlerProps['onExited'] = (event, key1, key2) => {\n const key = key1 || key2;\n if (!isDefined(key)) {\n throw new Error('handleExitedSnack Cannot be called with undefined key');\n }\n\n this.setState((state) => {\n const newState = this.processQueue({\n ...state,\n snacks: state.snacks.filter(item => item.key !== key),\n });\n\n if (newState.queue.length === 0) {\n return newState;\n }\n\n return this.handleDismissOldest(newState);\n });\n };\n\n render(): JSX.Element {\n const { contextValue } = this.state;\n const {\n maxSnack: dontspread1,\n preventDuplicate: dontspread2,\n variant: dontspread3,\n anchorOrigin: dontspread4,\n iconVariant,\n dense = DEFAULTS.dense,\n hideIconVariant = DEFAULTS.hideIconVariant,\n domRoot,\n children,\n classes = {},\n ...props\n } = this.props;\n\n const categ = this.state.snacks.reduce((acc, current) => {\n const category = originKeyExtractor(current.anchorOrigin);\n const existingOfCategory = acc[category] || [];\n return {\n ...acc,\n [category]: [...existingOfCategory, current],\n };\n }, {});\n\n const snackbars = Object.keys(categ).map((origin) => {\n const snacks = categ[origin];\n return (\n \n {snacks.map(snack => (\n \n ))}\n \n );\n });\n\n return (\n \n {children}\n {domRoot ? createPortal(snackbars, domRoot) : snackbars}\n \n );\n }\n}\n\nexport default SnackbarProvider;\n","import { useContext } from 'react';\nimport SnackbarContext from './SnackbarContext';\nimport { ProviderContext } from '.';\n\nexport default (): ProviderContext => useContext(SnackbarContext);\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _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}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _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}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nconst marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nconst paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n const themeSpacing = getPath(theme, themeKey) || defaultValue;\n\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\n\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\n\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\n\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\n\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n// based on node assert, original notice:\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nimport {isBuffer} from 'buffer';\nimport {isPrimitive, inherits, isError, isFunction, isRegExp, isDate, inspect as utilInspect} from 'util';\nvar pSlice = Array.prototype.slice;\nvar _functionsHaveNames;\nfunction functionsHaveNames() {\n if (typeof _functionsHaveNames !== 'undefined') {\n return _functionsHaveNames;\n }\n return _functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n }());\n}\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nfunction assert(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\nexport default assert;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!isFunction(func)) {\n return;\n }\n if (functionsHaveNames()) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = AssertionError;\nexport function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n}\n\n// assert.AssertionError instanceof Error\ninherits(AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames() || !isFunction(something)) {\n return utilInspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nexport function fail(actual, expected, message, operator, stackStartFunction) {\n throw new AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nexport function ok(value, message) {\n if (!value) fail(value, true, message, '==', ok);\n}\nassert.ok = ok;\nexport {ok as assert};\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\nassert.equal = equal;\nexport function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', equal);\n}\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\nassert.notEqual = notEqual;\nexport function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', notEqual);\n }\n}\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\nassert.deepEqual = deepEqual;\nexport function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', deepEqual);\n }\n}\nassert.deepStrictEqual = deepStrictEqual;\nexport function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', deepStrictEqual);\n }\n}\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (isDate(actual) && isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (isRegExp(actual) && isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (isPrimitive(a) || isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\nassert.notDeepEqual = notDeepEqual;\nexport function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', notDeepEqual);\n }\n}\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nexport function notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\nassert.strictEqual = strictEqual;\nexport function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', strictEqual);\n }\n}\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\nassert.notStrictEqual = notStrictEqual;\nexport function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', notStrictEqual);\n }\n}\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\nassert.throws = throws;\nexport function throws(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n}\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = doesNotThrow;\nexport function doesNotThrow(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n}\n\nassert.ifError = ifError;\nexport function ifError(err) {\n if (err) throw err;\n}\n","/* The MIT License (MIT)\n *\n * Copyright 2015-2018 Peter A. Bigot\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Support for translating between Buffer instances and JavaScript\n * native types.\n *\n * {@link module:Layout~Layout|Layout} is the basis of a class\n * hierarchy that associates property names with sequences of encoded\n * bytes.\n *\n * Layouts are supported for these scalar (numeric) types:\n * * {@link module:Layout~UInt|Unsigned integers in little-endian\n * format} with {@link module:Layout.u8|8-bit}, {@link\n * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\n * {@link module:Layout.u32|32-bit}, {@link\n * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\n * representation ranges;\n * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\n * format} with {@link module:Layout.u16be|16-bit}, {@link\n * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\n * {@link module:Layout.u40be|40-bit}, and {@link\n * module:Layout.u48be|48-bit} representation ranges;\n * * {@link module:Layout~Int|Signed integers in little-endian\n * format} with {@link module:Layout.s8|8-bit}, {@link\n * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\n * {@link module:Layout.s32|32-bit}, {@link\n * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\n * representation ranges;\n * * {@link module:Layout~IntBE|Signed integers in big-endian format}\n * with {@link module:Layout.s16be|16-bit}, {@link\n * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\n * {@link module:Layout.s40be|40-bit}, and {@link\n * module:Layout.s48be|48-bit} representation ranges;\n * * 64-bit integral values that decode to an exact (if magnitude is\n * less than 2^53) or nearby integral Number in {@link\n * module:Layout.nu64|unsigned little-endian}, {@link\n * module:Layout.nu64be|unsigned big-endian}, {@link\n * module:Layout.ns64|signed little-endian}, and {@link\n * module:Layout.ns64be|unsigned big-endian} encodings;\n * * 32-bit floating point values with {@link\n * module:Layout.f32|little-endian} and {@link\n * module:Layout.f32be|big-endian} representations;\n * * 64-bit floating point values with {@link\n * module:Layout.f64|little-endian} and {@link\n * module:Layout.f64be|big-endian} representations;\n * * {@link module:Layout.const|Constants} that take no space in the\n * encoded expression.\n *\n * and for these aggregate types:\n * * {@link module:Layout.seq|Sequence}s of instances of a {@link\n * module:Layout~Layout|Layout}, with JavaScript representation as\n * an Array and constant or data-dependent {@link\n * module:Layout~Sequence#count|length};\n * * {@link module:Layout.struct|Structure}s that aggregate a\n * heterogeneous sequence of {@link module:Layout~Layout|Layout}\n * instances, with JavaScript representation as an Object;\n * * {@link module:Layout.union|Union}s that support multiple {@link\n * module:Layout~VariantLayout|variant layouts} over a fixed\n * (padded) or variable (not padded) span of bytes, using an\n * unsigned integer at the start of the data or a separate {@link\n * module:Layout.unionLayoutDiscriminator|layout element} to\n * determine which layout to use when interpreting the buffer\n * contents;\n * * {@link module:Layout.bits|BitStructure}s that contain a sequence\n * of individual {@link\n * module:Layout~BitStructure#addField|BitField}s packed into an 8,\n * 16, 24, or 32-bit unsigned integer starting at the least- or\n * most-significant bit;\n * * {@link module:Layout.cstr|C strings} of varying length;\n * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\n * module:Layout~Blob#length|length} raw data.\n *\n * All {@link module:Layout~Layout|Layout} instances are immutable\n * after construction, to prevent internal state from becoming\n * inconsistent.\n *\n * @local Layout\n * @local ExternalLayout\n * @local GreedyCount\n * @local OffsetLayout\n * @local UInt\n * @local UIntBE\n * @local Int\n * @local IntBE\n * @local NearUInt64\n * @local NearUInt64BE\n * @local NearInt64\n * @local NearInt64BE\n * @local Float\n * @local FloatBE\n * @local Double\n * @local DoubleBE\n * @local Sequence\n * @local Structure\n * @local UnionDiscriminator\n * @local UnionLayoutDiscriminator\n * @local Union\n * @local VariantLayout\n * @local BitStructure\n * @local BitField\n * @local Boolean\n * @local Blob\n * @local CString\n * @local Constant\n * @local bindConstructorLayout\n * @module Layout\n * @license MIT\n * @author Peter A. Bigot\n * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\n */\n\n'use strict';\n\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\nclass Layout {\n constructor(span, property) {\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n this.span = span;\n\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n makeDestinationObject() {\n return {};\n }\n\n /**\n * Decode from a Buffer into an JavaScript value.\n *\n * @param {Buffer} b - the buffer from which encoded data is read.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {(Number|Array|Object)} - the value of the decoded data.\n *\n * @abstract\n */\n decode(b, offset) {\n throw new Error('Layout is abstract');\n }\n\n /**\n * Encode a JavaScript value into a Buffer.\n *\n * @param {(Number|Array|Object)} src - the value to be encoded into\n * the buffer. The type accepted depends on the (sub-)type of {@link\n * Layout}.\n *\n * @param {Buffer} b - the buffer into which encoded data will be\n * written.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {Number} - the number of bytes encoded, including the\n * space skipped for internal padding, but excluding data such as\n * {@link Sequence#count|lengths} when stored {@link\n * ExternalLayout|externally}. This is the adjustment to `offset`\n * producing the offset where data for the next layout would be\n * written.\n *\n * @abstract\n */\n encode(src, b, offset) {\n throw new Error('Layout is abstract');\n }\n\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Buffer} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n return this.span;\n }\n\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n replicate(property) {\n const rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n fromArray(values) {\n return undefined;\n }\n}\nexports.Layout = Layout;\n\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n return name;\n}\nexports.nameWithProperty = nameWithProperty;\n\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n if (Class.hasOwnProperty('layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n if (!(layout && (layout instanceof Layout))) {\n throw new TypeError('layout must be a Layout');\n }\n if (layout.hasOwnProperty('boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n layout.makeDestinationObject = (() => new Class());\n Object.defineProperty(Class.prototype, 'encode', {\n value: function(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true,\n });\n Object.defineProperty(Class, 'decode', {\n value: function(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true,\n });\n}\nexports.bindConstructorLayout = bindConstructorLayout;\n\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\nclass ExternalLayout extends Layout {\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n}\n\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\nclass GreedyCount extends ExternalLayout {\n constructor(elementSpan, property) {\n if (undefined === elementSpan) {\n elementSpan = 1;\n }\n if ((!Number.isInteger(elementSpan)) || (0 >= elementSpan)) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n super(-1, property);\n\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n this.elementSpan = elementSpan;\n }\n\n /** @override */\n isCount() {\n return true;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n\n /** @override */\n encode(src, b, offset) {\n return 0;\n }\n}\n\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\nclass OffsetLayout extends ExternalLayout {\n constructor(layout, offset, property) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (undefined === offset) {\n offset = 0;\n } else if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n\n super(layout.span, property || layout.property);\n\n /** The subordinated layout. */\n this.layout = layout;\n\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Buffer\n * being accessed. */\n this.offset = offset;\n }\n\n /** @override */\n isCount() {\n return ((this.layout instanceof UInt)\n || (this.layout instanceof UIntBE));\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.decode(b, offset + this.offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.encode(src, b, offset + this.offset);\n }\n}\n\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UInt extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readUIntLE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeUIntLE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UIntBE extends Layout {\n constructor(span, property) {\n super( span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readUIntBE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeUIntBE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Int extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readIntLE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeIntLE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass IntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readIntBE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeIntBE(src, offset, this.span);\n return this.span;\n }\n}\n\nconst V2E32 = Math.pow(2, 32);\n\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\nfunction divmodInt64(src) {\n const hi32 = Math.floor(src / V2E32);\n const lo32 = src - (hi32 * V2E32);\n return {hi32, lo32};\n}\n/* Reconstruct Number from quotient and non-negative remainder */\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const lo32 = b.readUInt32LE(offset);\n const hi32 = b.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const hi32 = b.readUInt32BE(offset);\n const lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const lo32 = b.readUInt32LE(offset);\n const hi32 = b.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const hi32 = b.readInt32BE(offset);\n const lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Float extends Layout {\n constructor(property) {\n super(4, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readFloatLE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeFloatLE(src, offset);\n return 4;\n }\n}\n\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass FloatBE extends Layout {\n constructor(property) {\n super(4, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readFloatBE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeFloatBE(src, offset);\n return 4;\n }\n}\n\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Double extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readDoubleLE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeDoubleLE(src, offset);\n return 8;\n }\n}\n\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass DoubleBE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readDoubleBE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeDoubleBE(src, offset);\n return 8;\n }\n}\n\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Sequence extends Layout {\n constructor(elementLayout, count, property) {\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n if (!(((count instanceof ExternalLayout) && count.isCount())\n || (Number.isInteger(count) && (0 <= count)))) {\n throw new TypeError('count must be non-negative integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if ((!(count instanceof ExternalLayout))\n && (0 < elementLayout.span)) {\n span = count * elementLayout.span;\n }\n\n super(span, property);\n\n /** The layout for individual elements of the sequence. */\n this.elementLayout = elementLayout;\n\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n this.count = count;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let span = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n } else {\n let idx = 0;\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const rv = [];\n let i = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n return rv;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const elo = this.elementLayout;\n const span = src.reduce((span, v) => {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n return span;\n }\n}\n\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\nclass Structure extends Layout {\n constructor(fields, property, decodePrefixes) {\n if (!(Array.isArray(fields)\n && fields.reduce((acc, v) => acc && (v instanceof Layout), true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n if (('boolean' === typeof property)\n && (undefined === decodePrefixes)) {\n decodePrefixes = property;\n property = undefined;\n }\n\n /* Verify absence of unnamed variable-length fields. */\n for (const fd of fields) {\n if ((0 > fd.span)\n && (undefined === fd.property)) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n\n let span = -1;\n try {\n span = fields.reduce((span, fd) => span + fd.getSpan(), 0);\n } catch (e) {\n }\n super(span, property);\n\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n this.fields = fields;\n\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n this.decodePrefixes = !!decodePrefixes;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let span = 0;\n try {\n span = this.fields.reduce((span, fd) => {\n const fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n } catch (e) {\n throw new RangeError('indeterminate span');\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n offset += fd.getSpan(b, offset);\n if (this.decodePrefixes\n && (b.length === offset)) {\n break;\n }\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const firstOffset = offset;\n let lastOffset = 0;\n let lastWrote = 0;\n for (const fd of this.fields) {\n let span = fd.span;\n lastWrote = (0 < span) ? span : 0;\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n return (lastOffset + lastWrote) - firstOffset;\n }\n\n /** @override */\n fromArray(values) {\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if ((undefined !== fd.property)\n && (0 < values.length)) {\n dest[fd.property] = values.shift();\n }\n }\n return dest;\n }\n\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n }\n\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n let offset = 0;\n for (const fd of this.fields) {\n if (fd.property === property) {\n return offset;\n }\n if (0 > fd.span) {\n offset = -1;\n } else if (0 <= offset) {\n offset += fd.span;\n }\n }\n }\n}\n\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\nclass UnionDiscriminator {\n constructor(property) {\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n this.property = property;\n }\n\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n decode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n encode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n}\n\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\nclass UnionLayoutDiscriminator extends UnionDiscriminator {\n constructor(layout, property) {\n if (!((layout instanceof ExternalLayout)\n && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n\n super(property || layout.property || 'variant');\n\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n this.layout = layout;\n }\n\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n}\n\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Union extends Layout {\n constructor(discr, defaultLayout, property) {\n const upv = ((discr instanceof UInt)\n || (discr instanceof UIntBE));\n if (upv) {\n discr = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n } else if ((discr instanceof ExternalLayout)\n && discr.isCount()) {\n discr = new UnionLayoutDiscriminator(discr);\n } else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator '\n + 'or an unsigned integer layout');\n }\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n if (!((null === defaultLayout)\n || (defaultLayout instanceof Layout))) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n let span = -1;\n if (defaultLayout) {\n span = defaultLayout.span;\n if ((0 <= span) && upv) {\n span += discr.layout.span;\n }\n }\n super(span, property);\n\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n this.discriminator = discr;\n\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n this.usesPrefixDiscriminator = upv;\n\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n this.defaultLayout = defaultLayout;\n\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n this.registry = {};\n\n /* Private variable used when invoking getSourceVariant */\n let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this);\n\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n this.getSourceVariant = function(src) {\n return boundGetSourceVariant(src);\n };\n\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n this.configGetSourceVariant = function(gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n const vlo = this.getVariant(b, offset);\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n return vlo.getSpan(b, offset);\n }\n\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisified rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n defaultGetSourceVariant(src) {\n if (src.hasOwnProperty(this.discriminator.property)) {\n if (this.defaultLayout\n && src.hasOwnProperty(this.defaultLayout.property)) {\n return undefined;\n }\n const vlo = this.registry[src[this.discriminator.property]];\n if (vlo\n && ((!vlo.layout)\n || src.hasOwnProperty(vlo.property))) {\n return vlo;\n }\n } else {\n for (const tag in this.registry) {\n const vlo = this.registry[tag];\n if (src.hasOwnProperty(vlo.property)) {\n return vlo;\n }\n }\n }\n throw new Error('unable to infer src variant');\n }\n\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let dest;\n const dlo = this.discriminator;\n const discr = dlo.decode(b, offset);\n let clo = this.registry[discr];\n if (undefined === clo) {\n let contentOffset = 0;\n clo = this.defaultLayout;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n dest[clo.property] = this.defaultLayout.decode(b, offset + contentOffset);\n } else {\n dest = clo.decode(b, offset);\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const vlo = this.getSourceVariant(src);\n if (undefined === vlo) {\n const dlo = this.discriminator;\n const clo = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dlo.encode(src[dlo.property], b, offset);\n return contentOffset + clo.encode(src[clo.property], b,\n offset + contentOffset);\n }\n return vlo.encode(src, b, offset);\n }\n\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n addVariant(variant, layout, property) {\n const rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Buffer)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Buffer}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n getVariant(vb, offset) {\n let variant = vb;\n if (Buffer.isBuffer(vb)) {\n if (undefined === offset) {\n offset = 0;\n }\n variant = this.discriminator.decode(vb, offset);\n }\n return this.registry[variant];\n }\n}\n\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\nclass VariantLayout extends Layout {\n constructor(union, variant, layout, property) {\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n if ((!Number.isInteger(variant)) || (0 > variant)) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n if (('string' === typeof layout)\n && (undefined === property)) {\n property = layout;\n layout = null;\n }\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if ((null !== union.defaultLayout)\n && (0 <= layout.span)\n && (layout.span > union.defaultLayout.span)) {\n throw new Error('variant span exceeds span of containing union');\n }\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n let span = union.span;\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n if ((0 <= span) && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n super(span, property);\n\n /** The {@link Union} to which this variant belongs. */\n this.union = union;\n\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n this.variant = variant;\n\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n this.layout = layout || null;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n return contentOffset + this.layout.getSpan(b, offset + contentOffset);\n }\n\n /** @override */\n decode(b, offset) {\n const dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n } else if (this.property) {\n dest[this.property] = true;\n } else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n return dest;\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout\n && (!src.hasOwnProperty(this.property))) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n this.union.discriminator.encode(this.variant, b, offset);\n let span = contentOffset;\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n if ((0 <= this.union.span)\n && (span > this.union.span)) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n return span;\n }\n\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n }\n}\n\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n return v;\n}\n\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass BitStructure extends Layout {\n constructor(word, msb, property) {\n if (!((word instanceof UInt)\n || (word instanceof UIntBE))) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n if (('string' === typeof msb)\n && (undefined === property)) {\n property = msb;\n msb = undefined;\n }\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n super(word.span, property);\n\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n this.word = word;\n\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n this.msb = !!msb;\n\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n this.fields = [];\n\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n let value = 0;\n this._packedSetValue = function(v) {\n value = fixBitwiseResult(v);\n return this;\n };\n this._packedGetValue = function() {\n return value;\n };\n }\n\n /** @override */\n decode(b, offset) {\n const dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(value);\n }\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n addField(bits, property) {\n const bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n // eslint-disable-next-line no-new-wrappers\n const bf = new Boolean(this, property);\n this.fields.push(bf);\n return bf;\n }\n\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n }\n}\n\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\nclass BitField {\n constructor(container, bits, property) {\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n if ((!Number.isInteger(bits)) || (0 >= bits)) {\n throw new TypeError('bits must be positive integer');\n }\n const totalBits = 8 * container.span;\n const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0);\n if ((bits + usedBits) > totalBits) {\n throw new Error('bits too long for span remainder ('\n + (totalBits - usedBits) + ' of '\n + totalBits + ' remain)');\n }\n\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n this.container = container;\n\n /** The span of this value in bits. */\n this.bits = bits;\n\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n this.valueMask = (1 << bits) - 1;\n if (32 === bits) { // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n this.start = usedBits;\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n decode() {\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(word & this.wordMask);\n const value = wordValue >>> this.start;\n return value;\n }\n\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n encode(value) {\n if ((!Number.isInteger(value))\n || (value !== fixBitwiseResult(value & this.valueMask))) {\n throw new TypeError(nameWithProperty('BitField.encode', this)\n + ' value must be integer not exceeding ' + this.valueMask);\n }\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(value << this.start);\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask)\n | wordValue);\n };\n}\n\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n/* eslint-disable no-extend-native */\nclass Boolean extends BitField {\n constructor(container, property) {\n super(container, 1, property);\n }\n\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n decode(b, offset) {\n return !!BitField.prototype.decode.call(this, b, offset);\n }\n\n /** @override */\n encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n return BitField.prototype.encode.call(this, value);\n }\n}\n/* eslint-enable no-extend-native */\n\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Buffer.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Blob extends Layout {\n constructor(length, property) {\n if (!(((length instanceof ExternalLayout) && length.isCount())\n || (Number.isInteger(length) && (0 <= length)))) {\n throw new TypeError('length must be positive integer '\n + 'or an unsigned integer ExternalLayout');\n }\n\n let span = -1;\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n super(span, property);\n\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n this.length = length;\n }\n\n /** @override */\n getSpan(b, offset) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return b.slice(offset, offset + span);\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n let span = this.length;\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n if (!(Buffer.isBuffer(src)\n && (span === src.length))) {\n throw new TypeError(nameWithProperty('Blob.encode', this)\n + ' requires (length ' + span + ') Buffer as src');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n b.write(src.toString('hex'), offset, span, 'hex');\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n return span;\n }\n}\n\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass CString extends Layout {\n constructor(property) {\n super(-1, property);\n }\n\n /** @override */\n getSpan(b, offset) {\n if (!Buffer.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n if (undefined === offset) {\n offset = 0;\n }\n let idx = offset;\n while ((idx < b.length) && (0 !== b[idx])) {\n idx += 1;\n }\n return 1 + idx - offset;\n }\n\n /** @override */\n decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.getSpan(b, offset);\n return b.slice(offset, offset + span - 1).toString('utf-8');\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n const srcb = new Buffer(src, 'utf8');\n const span = srcb.length;\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(b, offset);\n b[offset + span] = 0;\n return span + 1;\n }\n}\n\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UTF8 extends Layout {\n constructor(maxSpan, property) {\n if (('string' === typeof maxSpan)\n && (undefined === property)) {\n property = maxSpan;\n maxSpan = undefined;\n }\n if (undefined === maxSpan) {\n maxSpan = -1;\n } else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n\n super(-1, property);\n\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n this.maxSpan = maxSpan;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (!Buffer.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n if (undefined === offset) {\n offset = 0;\n }\n return b.length - offset;\n }\n\n /** @override */\n decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.getSpan(b, offset);\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n return b.slice(offset, offset + span).toString('utf-8');\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n const srcb = new Buffer(src, 'utf8');\n const span = srcb.length;\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(b, offset);\n return span;\n }\n}\n\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Constant extends Layout {\n constructor(value, property) {\n super(0, property);\n\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n this.value = value;\n }\n\n /** @override */\n decode(b, offset, dest) {\n return this.value;\n }\n\n /** @override */\n encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n}\n\nexports.ExternalLayout = ExternalLayout;\nexports.GreedyCount = GreedyCount;\nexports.OffsetLayout = OffsetLayout;\nexports.UInt = UInt;\nexports.UIntBE = UIntBE;\nexports.Int = Int;\nexports.IntBE = IntBE;\nexports.Float = Float;\nexports.FloatBE = FloatBE;\nexports.Double = Double;\nexports.DoubleBE = DoubleBE;\nexports.Sequence = Sequence;\nexports.Structure = Structure;\nexports.UnionDiscriminator = UnionDiscriminator;\nexports.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\nexports.Union = Union;\nexports.VariantLayout = VariantLayout;\nexports.BitStructure = BitStructure;\nexports.BitField = BitField;\nexports.Boolean = Boolean;\nexports.Blob = Blob;\nexports.CString = CString;\nexports.UTF8 = UTF8;\nexports.Constant = Constant;\n\n/** Factory for {@link GreedyCount}. */\nexports.greedy = ((elementSpan, property) => new GreedyCount(elementSpan, property));\n\n/** Factory for {@link OffsetLayout}. */\nexports.offset = ((layout, offset, property) => new OffsetLayout(layout, offset, property));\n\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\nexports.u8 = (property => new UInt(1, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16 = (property => new UInt(2, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24 = (property => new UInt(3, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32 = (property => new UInt(4, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40 = (property => new UInt(5, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48 = (property => new UInt(6, property));\n\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64 = (property => new NearUInt64(property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16be = (property => new UIntBE(2, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24be = (property => new UIntBE(3, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32be = (property => new UIntBE(4, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40be = (property => new UIntBE(5, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48be = (property => new UIntBE(6, property));\n\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64be = (property => new NearUInt64BE(property));\n\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\nexports.s8 = (property => new Int(1, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\nexports.s16 = (property => new Int(2, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\nexports.s24 = (property => new Int(3, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\nexports.s32 = (property => new Int(4, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\nexports.s40 = (property => new Int(5, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\nexports.s48 = (property => new Int(6, property));\n\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64 = (property => new NearInt64(property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\nexports.s16be = (property => new IntBE(2, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\nexports.s24be = (property => new IntBE(3, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\nexports.s32be = (property => new IntBE(4, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\nexports.s40be = (property => new IntBE(5, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\nexports.s48be = (property => new IntBE(6, property));\n\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64be = (property => new NearInt64BE(property));\n\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\nexports.f32 = (property => new Float(property));\n\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\nexports.f32be = (property => new FloatBE(property));\n\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\nexports.f64 = (property => new Double(property));\n\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\nexports.f64be = (property => new DoubleBE(property));\n\n/** Factory for {@link Structure} values. */\nexports.struct = ((fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes));\n\n/** Factory for {@link BitStructure} values. */\nexports.bits = ((word, msb, property) => new BitStructure(word, msb, property));\n\n/** Factory for {@link Sequence} values. */\nexports.seq = ((elementLayout, count, property) => new Sequence(elementLayout, count, property));\n\n/** Factory for {@link Union} values. */\nexports.union = ((discr, defaultLayout, property) => new Union(discr, defaultLayout, property));\n\n/** Factory for {@link UnionLayoutDiscriminator} values. */\nexports.unionLayoutDiscriminator = ((layout, property) => new UnionLayoutDiscriminator(layout, property));\n\n/** Factory for {@link Blob} values. */\nexports.blob = ((length, property) => new Blob(length, property));\n\n/** Factory for {@link CString} values. */\nexports.cstr = (property => new CString(property));\n\n/** Factory for {@link UTF8} values. */\nexports.utf8 = ((maxSpan, property) => new UTF8(maxSpan, property));\n\n/** Factory for {@link Constant} values. */\nexports.const = ((value, property) => new Constant(value, property));\n","// @flow\n\nimport * as BufferLayout from 'buffer-layout';\n\n/**\n * Layout for a public key\n */\nexport const publicKey = (property: string = 'publicKey'): Object => {\n return BufferLayout.blob(32, property);\n};\n\n/**\n * Layout for a 64bit unsigned value\n */\nexport const uint64 = (property: string = 'uint64'): Object => {\n return BufferLayout.blob(8, property);\n};\n","// @flow\n\nimport {sendAndConfirmTransaction as realSendAndConfirmTransaction} from '@solana/web3.js';\nimport type {\n Connection,\n Signer,\n Transaction,\n TransactionSignature,\n} from '@solana/web3.js';\n\nexport function sendAndConfirmTransaction(\n title: string,\n connection: Connection,\n transaction: Transaction,\n ...signers: Array\n): Promise {\n return realSendAndConfirmTransaction(connection, transaction, signers, {\n skipPreflight: false,\n });\n}\n","/**\n * @flow\n */\n\nimport {Buffer} from 'buffer';\nimport assert from 'assert';\nimport BN from 'bn.js';\nimport * as BufferLayout from 'buffer-layout';\nimport {\n Keypair,\n PublicKey,\n SystemProgram,\n Transaction,\n TransactionInstruction,\n SYSVAR_RENT_PUBKEY,\n} from '@solana/web3.js';\nimport type {\n Connection,\n Commitment,\n Signer,\n TransactionSignature,\n} from '@solana/web3.js';\n\nimport * as Layout from './layout';\nimport {sendAndConfirmTransaction} from './util/send-and-confirm-transaction';\n\nexport const TOKEN_PROGRAM_ID: PublicKey = new PublicKey(\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n);\n\nexport const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey = new PublicKey(\n 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',\n);\n\nconst FAILED_TO_FIND_ACCOUNT = 'Failed to find account';\nconst INVALID_ACCOUNT_OWNER = 'Invalid account owner';\n\n/**\n * Unfortunately, BufferLayout.encode uses an `instanceof` check for `Buffer`\n * which fails when using `publicKey.toBuffer()` directly because the bundled `Buffer`\n * class in `@solana/web3.js` is different from the bundled `Buffer` class in this package\n */\nfunction pubkeyToBuffer(publicKey: PublicKey): typeof Buffer {\n return Buffer.from(publicKey.toBuffer());\n}\n\n/**\n * 64-bit value\n */\nexport class u64 extends BN {\n /**\n * Convert to Buffer representation\n */\n toBuffer(): typeof Buffer {\n const a = super.toArray().reverse();\n const b = Buffer.from(a);\n if (b.length === 8) {\n return b;\n }\n assert(b.length < 8, 'u64 too large');\n\n const zeroPad = Buffer.alloc(8);\n b.copy(zeroPad);\n return zeroPad;\n }\n\n /**\n * Construct a u64 from Buffer representation\n */\n static fromBuffer(buffer: typeof Buffer): u64 {\n assert(buffer.length === 8, `Invalid buffer length: ${buffer.length}`);\n return new u64(\n [...buffer]\n .reverse()\n .map(i => `00${i.toString(16)}`.slice(-2))\n .join(''),\n 16,\n );\n }\n}\n\nfunction isAccount(accountOrPublicKey: any): boolean {\n return 'publicKey' in accountOrPublicKey;\n}\n\ntype AuthorityType =\n | 'MintTokens'\n | 'FreezeAccount'\n | 'AccountOwner'\n | 'CloseAccount';\n\nconst AuthorityTypeCodes = {\n MintTokens: 0,\n FreezeAccount: 1,\n AccountOwner: 2,\n CloseAccount: 3,\n};\n\n// The address of the special mint for wrapped native token.\nexport const NATIVE_MINT: PublicKey = new PublicKey(\n 'So11111111111111111111111111111111111111112',\n);\n\n/**\n * Information about the mint\n */\ntype MintInfo = {|\n /**\n * Optional authority used to mint new tokens. The mint authority may only be provided during\n * mint creation. If no mint authority is present then the mint has a fixed supply and no\n * further tokens may be minted.\n */\n mintAuthority: null | PublicKey,\n\n /**\n * Total supply of tokens\n */\n supply: u64,\n\n /**\n * Number of base 10 digits to the right of the decimal place\n */\n decimals: number,\n\n /**\n * Is this mint initialized\n */\n isInitialized: boolean,\n\n /**\n * Optional authority to freeze token accounts\n */\n freezeAuthority: null | PublicKey,\n|};\n\nexport const MintLayout: typeof BufferLayout.Structure = BufferLayout.struct([\n BufferLayout.u32('mintAuthorityOption'),\n Layout.publicKey('mintAuthority'),\n Layout.uint64('supply'),\n BufferLayout.u8('decimals'),\n BufferLayout.u8('isInitialized'),\n BufferLayout.u32('freezeAuthorityOption'),\n Layout.publicKey('freezeAuthority'),\n]);\n\n/**\n * Information about an account\n */\ntype AccountInfo = {|\n /**\n * The address of this account\n */\n address: PublicKey,\n\n /**\n * The mint associated with this account\n */\n mint: PublicKey,\n\n /**\n * Owner of this account\n */\n owner: PublicKey,\n\n /**\n * Amount of tokens this account holds\n */\n amount: u64,\n\n /**\n * The delegate for this account\n */\n delegate: null | PublicKey,\n\n /**\n * The amount of tokens the delegate authorized to the delegate\n */\n delegatedAmount: u64,\n\n /**\n * Is this account initialized\n */\n isInitialized: boolean,\n\n /**\n * Is this account frozen\n */\n isFrozen: boolean,\n\n /**\n * Is this a native token account\n */\n isNative: boolean,\n\n /**\n * If this account is a native token, it must be rent-exempt. This\n * value logs the rent-exempt reserve which must remain in the balance\n * until the account is closed.\n */\n rentExemptReserve: null | u64,\n\n /**\n * Optional authority to close the account\n */\n closeAuthority: null | PublicKey,\n|};\n\n/**\n * @private\n */\nexport const AccountLayout: typeof BufferLayout.Structure = BufferLayout.struct(\n [\n Layout.publicKey('mint'),\n Layout.publicKey('owner'),\n Layout.uint64('amount'),\n BufferLayout.u32('delegateOption'),\n Layout.publicKey('delegate'),\n BufferLayout.u8('state'),\n BufferLayout.u32('isNativeOption'),\n Layout.uint64('isNative'),\n Layout.uint64('delegatedAmount'),\n BufferLayout.u32('closeAuthorityOption'),\n Layout.publicKey('closeAuthority'),\n ],\n);\n\n/**\n * Information about an multisig\n */\ntype MultisigInfo = {|\n /**\n * The number of signers required\n */\n m: number,\n\n /**\n * Number of possible signers, corresponds to the\n * number of `signers` that are valid.\n */\n n: number,\n\n /**\n * Is this mint initialized\n */\n initialized: boolean,\n\n /**\n * The signers\n */\n signer1: PublicKey,\n signer2: PublicKey,\n signer3: PublicKey,\n signer4: PublicKey,\n signer5: PublicKey,\n signer6: PublicKey,\n signer7: PublicKey,\n signer8: PublicKey,\n signer9: PublicKey,\n signer10: PublicKey,\n signer11: PublicKey,\n|};\n\n/**\n * @private\n */\nconst MultisigLayout = BufferLayout.struct([\n BufferLayout.u8('m'),\n BufferLayout.u8('n'),\n BufferLayout.u8('is_initialized'),\n Layout.publicKey('signer1'),\n Layout.publicKey('signer2'),\n Layout.publicKey('signer3'),\n Layout.publicKey('signer4'),\n Layout.publicKey('signer5'),\n Layout.publicKey('signer6'),\n Layout.publicKey('signer7'),\n Layout.publicKey('signer8'),\n Layout.publicKey('signer9'),\n Layout.publicKey('signer10'),\n Layout.publicKey('signer11'),\n]);\n\n/**\n * An ERC20-like Token\n */\nexport class Token {\n /**\n * @private\n */\n connection: Connection;\n\n /**\n * The public key identifying this mint\n */\n publicKey: PublicKey;\n\n /**\n * Program Identifier for the Token program\n */\n programId: PublicKey;\n\n /**\n * Program Identifier for the Associated Token program\n */\n associatedProgramId: PublicKey;\n\n /**\n * Fee payer\n */\n payer: Signer;\n\n /**\n * Create a Token object attached to the specific mint\n *\n * @param connection The connection to use\n * @param token Public key of the mint\n * @param programId token programId\n * @param payer Payer of fees\n */\n constructor(\n connection: Connection,\n publicKey: PublicKey,\n programId: PublicKey,\n payer: Signer,\n ) {\n Object.assign(this, {\n connection,\n publicKey,\n programId,\n payer,\n // Hard code is ok; Overriding is needed only for tests\n associatedProgramId: ASSOCIATED_TOKEN_PROGRAM_ID,\n });\n }\n\n /**\n * Get the minimum balance for the mint to be rent exempt\n *\n * @return Number of lamports required\n */\n static async getMinBalanceRentForExemptMint(\n connection: Connection,\n ): Promise {\n return await connection.getMinimumBalanceForRentExemption(MintLayout.span);\n }\n\n /**\n * Get the minimum balance for the account to be rent exempt\n *\n * @return Number of lamports required\n */\n static async getMinBalanceRentForExemptAccount(\n connection: Connection,\n ): Promise {\n return await connection.getMinimumBalanceForRentExemption(\n AccountLayout.span,\n );\n }\n\n /**\n * Get the minimum balance for the multsig to be rent exempt\n *\n * @return Number of lamports required\n */\n static async getMinBalanceRentForExemptMultisig(\n connection: Connection,\n ): Promise {\n return await connection.getMinimumBalanceForRentExemption(\n MultisigLayout.span,\n );\n }\n\n /**\n * Create and initialize a token.\n *\n * @param connection The connection to use\n * @param payer Fee payer for transaction\n * @param mintAuthority Account or multisig that will control minting\n * @param freezeAuthority Optional account or multisig that can freeze token accounts\n * @param decimals Location of the decimal place\n * @param programId Optional token programId, uses the system programId by default\n * @return Token object for the newly minted token\n */\n static async createMint(\n connection: Connection,\n payer: Signer,\n mintAuthority: PublicKey,\n freezeAuthority: PublicKey | null,\n decimals: number,\n programId: PublicKey,\n ): Promise {\n const mintAccount = Keypair.generate();\n const token = new Token(\n connection,\n mintAccount.publicKey,\n programId,\n payer,\n );\n\n // Allocate memory for the account\n const balanceNeeded = await Token.getMinBalanceRentForExemptMint(\n connection,\n );\n\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: payer.publicKey,\n newAccountPubkey: mintAccount.publicKey,\n lamports: balanceNeeded,\n space: MintLayout.span,\n programId,\n }),\n );\n\n transaction.add(\n Token.createInitMintInstruction(\n programId,\n mintAccount.publicKey,\n decimals,\n mintAuthority,\n freezeAuthority,\n ),\n );\n\n // Send the two instructions\n await sendAndConfirmTransaction(\n 'createAccount and InitializeMint',\n connection,\n transaction,\n payer,\n mintAccount,\n );\n\n return token;\n }\n\n /**\n * Create and initialize a new account.\n *\n * This account may then be used as a `transfer()` or `approve()` destination\n *\n * @param owner User account that will own the new account\n * @return Public key of the new empty account\n */\n async createAccount(owner: PublicKey): Promise {\n // Allocate memory for the account\n const balanceNeeded = await Token.getMinBalanceRentForExemptAccount(\n this.connection,\n );\n\n const newAccount = Keypair.generate();\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: this.payer.publicKey,\n newAccountPubkey: newAccount.publicKey,\n lamports: balanceNeeded,\n space: AccountLayout.span,\n programId: this.programId,\n }),\n );\n\n const mintPublicKey = this.publicKey;\n transaction.add(\n Token.createInitAccountInstruction(\n this.programId,\n mintPublicKey,\n newAccount.publicKey,\n owner,\n ),\n );\n\n // Send the two instructions\n await sendAndConfirmTransaction(\n 'createAccount and InitializeAccount',\n this.connection,\n transaction,\n this.payer,\n newAccount,\n );\n\n return newAccount.publicKey;\n }\n\n /**\n * Create and initialize the associated account.\n *\n * This account may then be used as a `transfer()` or `approve()` destination\n *\n * @param owner User account that will own the new account\n * @return Public key of the new associated account\n */\n async createAssociatedTokenAccount(owner: PublicKey): Promise {\n const associatedAddress = await Token.getAssociatedTokenAddress(\n this.associatedProgramId,\n this.programId,\n this.publicKey,\n owner,\n );\n\n return this.createAssociatedTokenAccountInternal(owner, associatedAddress);\n }\n\n async createAssociatedTokenAccountInternal(\n owner: PublicKey,\n associatedAddress: PublicKey,\n ): Promise {\n await sendAndConfirmTransaction(\n 'CreateAssociatedTokenAccount',\n this.connection,\n new Transaction().add(\n Token.createAssociatedTokenAccountInstruction(\n this.associatedProgramId,\n this.programId,\n this.publicKey,\n associatedAddress,\n owner,\n this.payer.publicKey,\n ),\n ),\n this.payer,\n );\n\n return associatedAddress;\n }\n\n /**\n * Retrieve the associated account or create one if not found.\n *\n * This account may then be used as a `transfer()` or `approve()` destination\n *\n * @param owner User account that will own the new account\n * @return The new associated account\n */\n async getOrCreateAssociatedAccountInfo(\n owner: PublicKey,\n ): Promise {\n const associatedAddress = await Token.getAssociatedTokenAddress(\n this.associatedProgramId,\n this.programId,\n this.publicKey,\n owner,\n );\n\n // This is the optimum logic, considering TX fee, client-side computation,\n // RPC roundtrips and guaranteed idempotent.\n // Sadly we can't do this atomically;\n try {\n return await this.getAccountInfo(associatedAddress);\n } catch (err) {\n // INVALID_ACCOUNT_OWNER can be possible if the associatedAddress has\n // already been received some lamports (= became system accounts).\n // Assuming program derived addressing is safe, this is the only case\n // for the INVALID_ACCOUNT_OWNER in this code-path\n if (\n err.message === FAILED_TO_FIND_ACCOUNT ||\n err.message === INVALID_ACCOUNT_OWNER\n ) {\n // as this isn't atomic, it's possible others can create associated\n // accounts meanwhile\n try {\n await this.createAssociatedTokenAccountInternal(\n owner,\n associatedAddress,\n );\n } catch (err) {\n // ignore all errors; for now there is no API compatible way to\n // selectively ignore the expected instruction error if the\n // associated account is existing already.\n }\n\n // Now this should always succeed\n return await this.getAccountInfo(associatedAddress);\n } else {\n throw err;\n }\n }\n }\n\n /**\n * Create and initialize a new account on the special native token mint.\n *\n * In order to be wrapped, the account must have a balance of native tokens\n * when it is initialized with the token program.\n *\n * This function sends lamports to the new account before initializing it.\n *\n * @param connection A solana web3 connection\n * @param programId The token program ID\n * @param owner The owner of the new token account\n * @param payer The source of the lamports to initialize, and payer of the initialization fees.\n * @param amount The amount of lamports to wrap\n * @return {Promise} The new token account\n */\n static async createWrappedNativeAccount(\n connection: Connection,\n programId: PublicKey,\n owner: PublicKey,\n payer: Signer,\n amount: number,\n ): Promise {\n // Allocate memory for the account\n const balanceNeeded = await Token.getMinBalanceRentForExemptAccount(\n connection,\n );\n\n // Create a new account\n const newAccount = Keypair.generate();\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: payer.publicKey,\n newAccountPubkey: newAccount.publicKey,\n lamports: balanceNeeded,\n space: AccountLayout.span,\n programId,\n }),\n );\n\n // Send lamports to it (these will be wrapped into native tokens by the token program)\n transaction.add(\n SystemProgram.transfer({\n fromPubkey: payer.publicKey,\n toPubkey: newAccount.publicKey,\n lamports: amount,\n }),\n );\n\n // Assign the new account to the native token mint.\n // the account will be initialized with a balance equal to the native token balance.\n // (i.e. amount)\n transaction.add(\n Token.createInitAccountInstruction(\n programId,\n NATIVE_MINT,\n newAccount.publicKey,\n owner,\n ),\n );\n\n // Send the three instructions\n await sendAndConfirmTransaction(\n 'createAccount, transfer, and initializeAccount',\n connection,\n transaction,\n payer,\n newAccount,\n );\n\n return newAccount.publicKey;\n }\n\n /**\n * Create and initialize a new multisig.\n *\n * This account may then be used for multisignature verification\n *\n * @param m Number of required signatures\n * @param signers Full set of signers\n * @return Public key of the new multisig account\n */\n async createMultisig(\n m: number,\n signers: Array,\n ): Promise {\n const multisigAccount = Keypair.generate();\n\n // Allocate memory for the account\n const balanceNeeded = await Token.getMinBalanceRentForExemptMultisig(\n this.connection,\n );\n const transaction = new Transaction();\n transaction.add(\n SystemProgram.createAccount({\n fromPubkey: this.payer.publicKey,\n newAccountPubkey: multisigAccount.publicKey,\n lamports: balanceNeeded,\n space: MultisigLayout.span,\n programId: this.programId,\n }),\n );\n\n // create the new account\n let keys = [\n {pubkey: multisigAccount.publicKey, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ];\n signers.forEach(signer =>\n keys.push({pubkey: signer, isSigner: false, isWritable: false}),\n );\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n BufferLayout.u8('m'),\n ]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 2, // InitializeMultisig instruction\n m,\n },\n data,\n );\n transaction.add({\n keys,\n programId: this.programId,\n data,\n });\n\n // Send the two instructions\n await sendAndConfirmTransaction(\n 'createAccount and InitializeMultisig',\n this.connection,\n transaction,\n this.payer,\n multisigAccount,\n );\n\n return multisigAccount.publicKey;\n }\n\n /**\n * Retrieve mint information\n */\n async getMintInfo(): Promise {\n const info = await this.connection.getAccountInfo(this.publicKey);\n if (info === null) {\n throw new Error('Failed to find mint account');\n }\n if (!info.owner.equals(this.programId)) {\n throw new Error(`Invalid mint owner: ${JSON.stringify(info.owner)}`);\n }\n if (info.data.length != MintLayout.span) {\n throw new Error(`Invalid mint size`);\n }\n\n const data = Buffer.from(info.data);\n const mintInfo = MintLayout.decode(data);\n\n if (mintInfo.mintAuthorityOption === 0) {\n mintInfo.mintAuthority = null;\n } else {\n mintInfo.mintAuthority = new PublicKey(mintInfo.mintAuthority);\n }\n\n mintInfo.supply = u64.fromBuffer(mintInfo.supply);\n mintInfo.isInitialized = mintInfo.isInitialized != 0;\n\n if (mintInfo.freezeAuthorityOption === 0) {\n mintInfo.freezeAuthority = null;\n } else {\n mintInfo.freezeAuthority = new PublicKey(mintInfo.freezeAuthority);\n }\n return mintInfo;\n }\n\n /**\n * Retrieve account information\n *\n * @param account Public key of the account\n */\n async getAccountInfo(\n account: PublicKey,\n commitment?: Commitment,\n ): Promise {\n const info = await this.connection.getAccountInfo(account, commitment);\n if (info === null) {\n throw new Error(FAILED_TO_FIND_ACCOUNT);\n }\n if (!info.owner.equals(this.programId)) {\n throw new Error(INVALID_ACCOUNT_OWNER);\n }\n if (info.data.length != AccountLayout.span) {\n throw new Error(`Invalid account size`);\n }\n\n const data = Buffer.from(info.data);\n const accountInfo = AccountLayout.decode(data);\n accountInfo.address = account;\n accountInfo.mint = new PublicKey(accountInfo.mint);\n accountInfo.owner = new PublicKey(accountInfo.owner);\n accountInfo.amount = u64.fromBuffer(accountInfo.amount);\n\n if (accountInfo.delegateOption === 0) {\n accountInfo.delegate = null;\n accountInfo.delegatedAmount = new u64();\n } else {\n accountInfo.delegate = new PublicKey(accountInfo.delegate);\n accountInfo.delegatedAmount = u64.fromBuffer(accountInfo.delegatedAmount);\n }\n\n accountInfo.isInitialized = accountInfo.state !== 0;\n accountInfo.isFrozen = accountInfo.state === 2;\n\n if (accountInfo.isNativeOption === 1) {\n accountInfo.rentExemptReserve = u64.fromBuffer(accountInfo.isNative);\n accountInfo.isNative = true;\n } else {\n accountInfo.rentExemptReserve = null;\n accountInfo.isNative = false;\n }\n\n if (accountInfo.closeAuthorityOption === 0) {\n accountInfo.closeAuthority = null;\n } else {\n accountInfo.closeAuthority = new PublicKey(accountInfo.closeAuthority);\n }\n\n if (!accountInfo.mint.equals(this.publicKey)) {\n throw new Error(\n `Invalid account mint: ${JSON.stringify(\n accountInfo.mint,\n )} !== ${JSON.stringify(this.publicKey)}`,\n );\n }\n return accountInfo;\n }\n\n /**\n * Retrieve Multisig information\n *\n * @param multisig Public key of the account\n */\n async getMultisigInfo(multisig: PublicKey): Promise {\n const info = await this.connection.getAccountInfo(multisig);\n if (info === null) {\n throw new Error('Failed to find multisig');\n }\n if (!info.owner.equals(this.programId)) {\n throw new Error(`Invalid multisig owner`);\n }\n if (info.data.length != MultisigLayout.span) {\n throw new Error(`Invalid multisig size`);\n }\n\n const data = Buffer.from(info.data);\n const multisigInfo = MultisigLayout.decode(data);\n multisigInfo.signer1 = new PublicKey(multisigInfo.signer1);\n multisigInfo.signer2 = new PublicKey(multisigInfo.signer2);\n multisigInfo.signer3 = new PublicKey(multisigInfo.signer3);\n multisigInfo.signer4 = new PublicKey(multisigInfo.signer4);\n multisigInfo.signer5 = new PublicKey(multisigInfo.signer5);\n multisigInfo.signer6 = new PublicKey(multisigInfo.signer6);\n multisigInfo.signer7 = new PublicKey(multisigInfo.signer7);\n multisigInfo.signer8 = new PublicKey(multisigInfo.signer8);\n multisigInfo.signer9 = new PublicKey(multisigInfo.signer9);\n multisigInfo.signer10 = new PublicKey(multisigInfo.signer10);\n multisigInfo.signer11 = new PublicKey(multisigInfo.signer11);\n\n return multisigInfo;\n }\n\n /**\n * Transfer tokens to another account\n *\n * @param source Source account\n * @param destination Destination account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Number of tokens to transfer\n */\n async transfer(\n source: PublicKey,\n destination: PublicKey,\n owner: any,\n multiSigners: Array,\n amount: number | u64,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n return await sendAndConfirmTransaction(\n 'Transfer',\n this.connection,\n new Transaction().add(\n Token.createTransferInstruction(\n this.programId,\n source,\n destination,\n ownerPublicKey,\n multiSigners,\n amount,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Grant a third-party permission to transfer up the specified number of tokens from an account\n *\n * @param account Public key of the account\n * @param delegate Account authorized to perform a transfer tokens from the source account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Maximum number of tokens the delegate may transfer\n */\n async approve(\n account: PublicKey,\n delegate: PublicKey,\n owner: any,\n multiSigners: Array,\n amount: number | u64,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'Approve',\n this.connection,\n new Transaction().add(\n Token.createApproveInstruction(\n this.programId,\n account,\n delegate,\n ownerPublicKey,\n multiSigners,\n amount,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Remove approval for the transfer of any remaining tokens\n *\n * @param account Public key of the account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n */\n async revoke(\n account: PublicKey,\n owner: any,\n multiSigners: Array,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'Revoke',\n this.connection,\n new Transaction().add(\n Token.createRevokeInstruction(\n this.programId,\n account,\n ownerPublicKey,\n multiSigners,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Assign a new authority to the account\n *\n * @param account Public key of the account\n * @param newAuthority New authority of the account\n * @param authorityType Type of authority to set\n * @param currentAuthority Current authority of the account\n * @param multiSigners Signing accounts if `currentAuthority` is a multiSig\n */\n async setAuthority(\n account: PublicKey,\n newAuthority: PublicKey | null,\n authorityType: AuthorityType,\n currentAuthority: any,\n multiSigners: Array,\n ): Promise {\n let currentAuthorityPublicKey: PublicKey;\n let signers;\n if (isAccount(currentAuthority)) {\n currentAuthorityPublicKey = currentAuthority.publicKey;\n signers = [currentAuthority];\n } else {\n currentAuthorityPublicKey = currentAuthority;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'SetAuthority',\n this.connection,\n new Transaction().add(\n Token.createSetAuthorityInstruction(\n this.programId,\n account,\n newAuthority,\n authorityType,\n currentAuthorityPublicKey,\n multiSigners,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Mint new tokens\n *\n * @param dest Public key of the account to mint to\n * @param authority Minting authority\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount Amount to mint\n */\n async mintTo(\n dest: PublicKey,\n authority: any,\n multiSigners: Array,\n amount: number | u64,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(authority)) {\n ownerPublicKey = authority.publicKey;\n signers = [authority];\n } else {\n ownerPublicKey = authority;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'MintTo',\n this.connection,\n new Transaction().add(\n Token.createMintToInstruction(\n this.programId,\n this.publicKey,\n dest,\n ownerPublicKey,\n multiSigners,\n amount,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Burn tokens\n *\n * @param account Account to burn tokens from\n * @param owner Account owner\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Amount to burn\n */\n async burn(\n account: PublicKey,\n owner: any,\n multiSigners: Array,\n amount: number | u64,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'Burn',\n this.connection,\n new Transaction().add(\n Token.createBurnInstruction(\n this.programId,\n this.publicKey,\n account,\n ownerPublicKey,\n multiSigners,\n amount,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Close account\n *\n * @param account Account to close\n * @param dest Account to receive the remaining balance of the closed account\n * @param authority Authority which is allowed to close the account\n * @param multiSigners Signing accounts if `authority` is a multiSig\n */\n async closeAccount(\n account: PublicKey,\n dest: PublicKey,\n authority: any,\n multiSigners: Array,\n ): Promise {\n let authorityPublicKey;\n let signers;\n if (isAccount(authority)) {\n authorityPublicKey = authority.publicKey;\n signers = [authority];\n } else {\n authorityPublicKey = authority;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'CloseAccount',\n this.connection,\n new Transaction().add(\n Token.createCloseAccountInstruction(\n this.programId,\n account,\n dest,\n authorityPublicKey,\n multiSigners,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Freeze account\n *\n * @param account Account to freeze\n * @param authority The mint freeze authority\n * @param multiSigners Signing accounts if `authority` is a multiSig\n */\n async freezeAccount(\n account: PublicKey,\n authority: any,\n multiSigners: Array,\n ): Promise {\n let authorityPublicKey;\n let signers;\n if (isAccount(authority)) {\n authorityPublicKey = authority.publicKey;\n signers = [authority];\n } else {\n authorityPublicKey = authority;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'FreezeAccount',\n this.connection,\n new Transaction().add(\n Token.createFreezeAccountInstruction(\n this.programId,\n account,\n this.publicKey,\n authorityPublicKey,\n multiSigners,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Thaw account\n *\n * @param account Account to thaw\n * @param authority The mint freeze authority\n * @param multiSigners Signing accounts if `authority` is a multiSig\n */\n async thawAccount(\n account: PublicKey,\n authority: any,\n multiSigners: Array,\n ): Promise {\n let authorityPublicKey;\n let signers;\n if (isAccount(authority)) {\n authorityPublicKey = authority.publicKey;\n signers = [authority];\n } else {\n authorityPublicKey = authority;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'ThawAccount',\n this.connection,\n new Transaction().add(\n Token.createThawAccountInstruction(\n this.programId,\n account,\n this.publicKey,\n authorityPublicKey,\n multiSigners,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Transfer tokens to another account, asserting the token mint and decimals\n *\n * @param source Source account\n * @param destination Destination account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Number of tokens to transfer\n * @param decimals Number of decimals in transfer amount\n */\n async transferChecked(\n source: PublicKey,\n destination: PublicKey,\n owner: any,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n return await sendAndConfirmTransaction(\n 'TransferChecked',\n this.connection,\n new Transaction().add(\n Token.createTransferCheckedInstruction(\n this.programId,\n source,\n this.publicKey,\n destination,\n ownerPublicKey,\n multiSigners,\n amount,\n decimals,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Grant a third-party permission to transfer up the specified number of tokens from an account,\n * asserting the token mint and decimals\n *\n * @param account Public key of the account\n * @param delegate Account authorized to perform a transfer tokens from the source account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Maximum number of tokens the delegate may transfer\n * @param decimals Number of decimals in approve amount\n */\n async approveChecked(\n account: PublicKey,\n delegate: PublicKey,\n owner: any,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'ApproveChecked',\n this.connection,\n new Transaction().add(\n Token.createApproveCheckedInstruction(\n this.programId,\n account,\n this.publicKey,\n delegate,\n ownerPublicKey,\n multiSigners,\n amount,\n decimals,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Mint new tokens, asserting the token mint and decimals\n *\n * @param dest Public key of the account to mint to\n * @param authority Minting authority\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount Amount to mint\n * @param decimals Number of decimals in amount to mint\n */\n async mintToChecked(\n dest: PublicKey,\n authority: any,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(authority)) {\n ownerPublicKey = authority.publicKey;\n signers = [authority];\n } else {\n ownerPublicKey = authority;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'MintToChecked',\n this.connection,\n new Transaction().add(\n Token.createMintToCheckedInstruction(\n this.programId,\n this.publicKey,\n dest,\n ownerPublicKey,\n multiSigners,\n amount,\n decimals,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Burn tokens, asserting the token mint and decimals\n *\n * @param account Account to burn tokens from\n * @param owner Account owner\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Amount to burn\n * @param decimals Number of decimals in amount to burn\n */\n async burnChecked(\n account: PublicKey,\n owner: any,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): Promise {\n let ownerPublicKey;\n let signers;\n if (isAccount(owner)) {\n ownerPublicKey = owner.publicKey;\n signers = [owner];\n } else {\n ownerPublicKey = owner;\n signers = multiSigners;\n }\n await sendAndConfirmTransaction(\n 'BurnChecked',\n this.connection,\n new Transaction().add(\n Token.createBurnCheckedInstruction(\n this.programId,\n this.publicKey,\n account,\n ownerPublicKey,\n multiSigners,\n amount,\n decimals,\n ),\n ),\n this.payer,\n ...signers,\n );\n }\n\n /**\n * Sync amount in native SPL token account to underlying lamports\n *\n * @param nativeAccount Account to sync\n */\n async syncNative(nativeAccount: PublicKey): Promise {\n await sendAndConfirmTransaction(\n 'SyncNative',\n this.connection,\n new Transaction().add(\n Token.createSyncNativeInstruction(this.programId, nativeAccount),\n ),\n this.payer,\n );\n }\n\n /**\n * Construct an InitializeMint instruction\n *\n * @param programId SPL Token program account\n * @param mint Token mint account\n * @param decimals Number of decimals in token account amounts\n * @param mintAuthority Minting authority\n * @param freezeAuthority Optional authority that can freeze token accounts\n */\n static createInitMintInstruction(\n programId: PublicKey,\n mint: PublicKey,\n decimals: number,\n mintAuthority: PublicKey,\n freezeAuthority: PublicKey | null,\n ): TransactionInstruction {\n let keys = [\n {pubkey: mint, isSigner: false, isWritable: true},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ];\n const commandDataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n BufferLayout.u8('decimals'),\n Layout.publicKey('mintAuthority'),\n BufferLayout.u8('option'),\n Layout.publicKey('freezeAuthority'),\n ]);\n let data = Buffer.alloc(1024);\n {\n const encodeLength = commandDataLayout.encode(\n {\n instruction: 0, // InitializeMint instruction\n decimals,\n mintAuthority: pubkeyToBuffer(mintAuthority),\n option: freezeAuthority === null ? 0 : 1,\n freezeAuthority: pubkeyToBuffer(freezeAuthority || new PublicKey(0)),\n },\n data,\n );\n data = data.slice(0, encodeLength);\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n }\n\n /**\n * Construct an InitializeAccount instruction\n *\n * @param programId SPL Token program account\n * @param mint Token mint account\n * @param account New account\n * @param owner Owner of the new account\n */\n static createInitAccountInstruction(\n programId: PublicKey,\n mint: PublicKey,\n account: PublicKey,\n owner: PublicKey,\n ): TransactionInstruction {\n const keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: false},\n {pubkey: owner, isSigner: false, isWritable: false},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ];\n const dataLayout = BufferLayout.struct([BufferLayout.u8('instruction')]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 1, // InitializeAccount instruction\n },\n data,\n );\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n }\n\n /**\n * Construct a Transfer instruction\n *\n * @param programId SPL Token program account\n * @param source Source account\n * @param destination Destination account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount Number of tokens to transfer\n */\n static createTransferInstruction(\n programId: PublicKey,\n source: PublicKey,\n destination: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 3, // Transfer instruction\n amount: new u64(amount).toBuffer(),\n },\n data,\n );\n\n let keys = [\n {pubkey: source, isSigner: false, isWritable: true},\n {pubkey: destination, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({\n pubkey: owner,\n isSigner: true,\n isWritable: false,\n });\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct an Approve instruction\n *\n * @param programId SPL Token program account\n * @param account Public key of the account\n * @param delegate Account authorized to perform a transfer of tokens from the source account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Maximum number of tokens the delegate may transfer\n */\n static createApproveInstruction(\n programId: PublicKey,\n account: PublicKey,\n delegate: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 4, // Approve instruction\n amount: new u64(amount).toBuffer(),\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: delegate, isSigner: false, isWritable: false},\n ];\n if (multiSigners.length === 0) {\n keys.push({pubkey: owner, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a Revoke instruction\n *\n * @param programId SPL Token program account\n * @param account Public key of the account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n */\n static createRevokeInstruction(\n programId: PublicKey,\n account: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([BufferLayout.u8('instruction')]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 5, // Approve instruction\n },\n data,\n );\n\n let keys = [{pubkey: account, isSigner: false, isWritable: true}];\n if (multiSigners.length === 0) {\n keys.push({pubkey: owner, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a SetAuthority instruction\n *\n * @param programId SPL Token program account\n * @param account Public key of the account\n * @param newAuthority New authority of the account\n * @param authorityType Type of authority to set\n * @param currentAuthority Current authority of the specified type\n * @param multiSigners Signing accounts if `currentAuthority` is a multiSig\n */\n static createSetAuthorityInstruction(\n programId: PublicKey,\n account: PublicKey,\n newAuthority: PublicKey | null,\n authorityType: AuthorityType,\n currentAuthority: PublicKey,\n multiSigners: Array,\n ): TransactionInstruction {\n const commandDataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n BufferLayout.u8('authorityType'),\n BufferLayout.u8('option'),\n Layout.publicKey('newAuthority'),\n ]);\n\n let data = Buffer.alloc(1024);\n {\n const encodeLength = commandDataLayout.encode(\n {\n instruction: 6, // SetAuthority instruction\n authorityType: AuthorityTypeCodes[authorityType],\n option: newAuthority === null ? 0 : 1,\n newAuthority: pubkeyToBuffer(newAuthority || new PublicKey(0)),\n },\n data,\n );\n data = data.slice(0, encodeLength);\n }\n\n let keys = [{pubkey: account, isSigner: false, isWritable: true}];\n if (multiSigners.length === 0) {\n keys.push({pubkey: currentAuthority, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: currentAuthority, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a MintTo instruction\n *\n * @param programId SPL Token program account\n * @param mint Public key of the mint\n * @param dest Public key of the account to mint to\n * @param authority The mint authority\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount Amount to mint\n */\n static createMintToInstruction(\n programId: PublicKey,\n mint: PublicKey,\n dest: PublicKey,\n authority: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 7, // MintTo instruction\n amount: new u64(amount).toBuffer(),\n },\n data,\n );\n\n let keys = [\n {pubkey: mint, isSigner: false, isWritable: true},\n {pubkey: dest, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({\n pubkey: authority,\n isSigner: true,\n isWritable: false,\n });\n } else {\n keys.push({pubkey: authority, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a Burn instruction\n *\n * @param programId SPL Token program account\n * @param mint Mint for the account\n * @param account Account to burn tokens from\n * @param owner Owner of the account\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount amount to burn\n */\n static createBurnInstruction(\n programId: PublicKey,\n mint: PublicKey,\n account: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 8, // Burn instruction\n amount: new u64(amount).toBuffer(),\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({\n pubkey: owner,\n isSigner: true,\n isWritable: false,\n });\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a Close instruction\n *\n * @param programId SPL Token program account\n * @param account Account to close\n * @param dest Account to receive the remaining balance of the closed account\n * @param authority Account Close authority\n * @param multiSigners Signing accounts if `owner` is a multiSig\n */\n static createCloseAccountInstruction(\n programId: PublicKey,\n account: PublicKey,\n dest: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([BufferLayout.u8('instruction')]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 9, // CloseAccount instruction\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: dest, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({pubkey: owner, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a Freeze instruction\n *\n * @param programId SPL Token program account\n * @param account Account to freeze\n * @param mint Mint account\n * @param authority Mint freeze authority\n * @param multiSigners Signing accounts if `owner` is a multiSig\n */\n static createFreezeAccountInstruction(\n programId: PublicKey,\n account: PublicKey,\n mint: PublicKey,\n authority: PublicKey,\n multiSigners: Array,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([BufferLayout.u8('instruction')]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 10, // FreezeAccount instruction\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: false},\n ];\n if (multiSigners.length === 0) {\n keys.push({pubkey: authority, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: authority, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a Thaw instruction\n *\n * @param programId SPL Token program account\n * @param account Account to thaw\n * @param mint Mint account\n * @param authority Mint freeze authority\n * @param multiSigners Signing accounts if `owner` is a multiSig\n */\n static createThawAccountInstruction(\n programId: PublicKey,\n account: PublicKey,\n mint: PublicKey,\n authority: PublicKey,\n multiSigners: Array,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([BufferLayout.u8('instruction')]);\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 11, // ThawAccount instruction\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: false},\n ];\n if (multiSigners.length === 0) {\n keys.push({pubkey: authority, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: authority, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a TransferChecked instruction\n *\n * @param programId SPL Token program account\n * @param source Source account\n * @param mint Mint account\n * @param destination Destination account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount Number of tokens to transfer\n * @param decimals Number of decimals in transfer amount\n */\n static createTransferCheckedInstruction(\n programId: PublicKey,\n source: PublicKey,\n mint: PublicKey,\n destination: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n BufferLayout.u8('decimals'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 12, // TransferChecked instruction\n amount: new u64(amount).toBuffer(),\n decimals,\n },\n data,\n );\n\n let keys = [\n {pubkey: source, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: false},\n {pubkey: destination, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({\n pubkey: owner,\n isSigner: true,\n isWritable: false,\n });\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct an ApproveChecked instruction\n *\n * @param programId SPL Token program account\n * @param account Public key of the account\n * @param mint Mint account\n * @param delegate Account authorized to perform a transfer of tokens from the source account\n * @param owner Owner of the source account\n * @param multiSigners Signing accounts if `owner` is a multiSig\n * @param amount Maximum number of tokens the delegate may transfer\n * @param decimals Number of decimals in approve amount\n */\n static createApproveCheckedInstruction(\n programId: PublicKey,\n account: PublicKey,\n mint: PublicKey,\n delegate: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n BufferLayout.u8('decimals'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 13, // ApproveChecked instruction\n amount: new u64(amount).toBuffer(),\n decimals,\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: false},\n {pubkey: delegate, isSigner: false, isWritable: false},\n ];\n if (multiSigners.length === 0) {\n keys.push({pubkey: owner, isSigner: true, isWritable: false});\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a MintToChecked instruction\n *\n * @param programId SPL Token program account\n * @param mint Public key of the mint\n * @param dest Public key of the account to mint to\n * @param authority The mint authority\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount Amount to mint\n * @param decimals Number of decimals in amount to mint\n */\n static createMintToCheckedInstruction(\n programId: PublicKey,\n mint: PublicKey,\n dest: PublicKey,\n authority: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n BufferLayout.u8('decimals'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 14, // MintToChecked instruction\n amount: new u64(amount).toBuffer(),\n decimals,\n },\n data,\n );\n\n let keys = [\n {pubkey: mint, isSigner: false, isWritable: true},\n {pubkey: dest, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({\n pubkey: authority,\n isSigner: true,\n isWritable: false,\n });\n } else {\n keys.push({pubkey: authority, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a BurnChecked instruction\n *\n * @param programId SPL Token program account\n * @param mint Mint for the account\n * @param account Account to burn tokens from\n * @param owner Owner of the account\n * @param multiSigners Signing accounts if `authority` is a multiSig\n * @param amount amount to burn\n */\n static createBurnCheckedInstruction(\n programId: PublicKey,\n mint: PublicKey,\n account: PublicKey,\n owner: PublicKey,\n multiSigners: Array,\n amount: number | u64,\n decimals: number,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([\n BufferLayout.u8('instruction'),\n Layout.uint64('amount'),\n BufferLayout.u8('decimals'),\n ]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 15, // BurnChecked instruction\n amount: new u64(amount).toBuffer(),\n decimals,\n },\n data,\n );\n\n let keys = [\n {pubkey: account, isSigner: false, isWritable: true},\n {pubkey: mint, isSigner: false, isWritable: true},\n ];\n if (multiSigners.length === 0) {\n keys.push({\n pubkey: owner,\n isSigner: true,\n isWritable: false,\n });\n } else {\n keys.push({pubkey: owner, isSigner: false, isWritable: false});\n multiSigners.forEach(signer =>\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n }),\n );\n }\n\n return new TransactionInstruction({\n keys,\n programId: programId,\n data,\n });\n }\n\n /**\n * Construct a SyncNative instruction\n *\n * @param programId SPL Token program account\n * @param nativeAccount Account to sync lamports from\n */\n static createSyncNativeInstruction(\n programId: PublicKey,\n nativeAccount: PublicKey,\n ): TransactionInstruction {\n const dataLayout = BufferLayout.struct([BufferLayout.u8('instruction')]);\n\n const data = Buffer.alloc(dataLayout.span);\n dataLayout.encode(\n {\n instruction: 17, // SyncNative instruction\n },\n data,\n );\n\n let keys = [{pubkey: nativeAccount, isSigner: false, isWritable: true}];\n return new TransactionInstruction({keys, programId: programId, data});\n }\n\n /**\n * Get the address for the associated token account\n *\n * @param associatedProgramId SPL Associated Token program account\n * @param programId SPL Token program account\n * @param mint Token mint account\n * @param owner Owner of the new account\n * @return Public key of the associated token account\n */\n static async getAssociatedTokenAddress(\n associatedProgramId: PublicKey,\n programId: PublicKey,\n mint: PublicKey,\n owner: PublicKey,\n allowOwnerOffCurve: boolean = false,\n ): Promise {\n if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) {\n throw new Error(`Owner cannot sign: ${owner.toString()}`);\n }\n return (\n await PublicKey.findProgramAddress(\n [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\n associatedProgramId,\n )\n )[0];\n }\n\n /**\n * Construct the AssociatedTokenProgram instruction to create the associated\n * token account\n *\n * @param associatedProgramId SPL Associated Token program account\n * @param programId SPL Token program account\n * @param mint Token mint account\n * @param associatedAccount New associated account\n * @param owner Owner of the new account\n * @param payer Payer of fees\n */\n static createAssociatedTokenAccountInstruction(\n associatedProgramId: PublicKey,\n programId: PublicKey,\n mint: PublicKey,\n associatedAccount: PublicKey,\n owner: PublicKey,\n payer: PublicKey,\n ): TransactionInstruction {\n const data = Buffer.alloc(0);\n\n let keys = [\n {pubkey: payer, isSigner: true, isWritable: true},\n {pubkey: associatedAccount, isSigner: false, isWritable: true},\n {pubkey: owner, isSigner: false, isWritable: false},\n {pubkey: mint, isSigner: false, isWritable: false},\n {pubkey: SystemProgram.programId, isSigner: false, isWritable: false},\n {pubkey: programId, isSigner: false, isWritable: false},\n {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n ];\n\n return new TransactionInstruction({\n keys,\n programId: associatedProgramId,\n data,\n });\n }\n}\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValidationStatus = exports.CivicPassMessageAction = exports.CivicPassMessageEventResult = exports.ChainType = exports.RefreshTokenState = exports.CivicPassIssuanceStatus = exports.TokenIssuanceState = exports.GatewayStatus = exports.GatekeeperRecordState = exports.TokenState = exports.State = void 0;\nvar State;\n(function (State) {\n State[\"ACTIVE\"] = \"ACTIVE\";\n State[\"REVOKED\"] = \"REVOKED\";\n State[\"FROZEN\"] = \"FROZEN\";\n})(State = exports.State || (exports.State = {}));\nvar TokenState;\n(function (TokenState) {\n TokenState[\"REQUESTED\"] = \"REQUESTED\";\n TokenState[\"ACTIVE\"] = \"ACTIVE\";\n TokenState[\"REVOKED\"] = \"REVOKED\";\n TokenState[\"FROZEN\"] = \"FROZEN\";\n TokenState[\"REJECTED\"] = \"REJECTED\";\n})(TokenState = exports.TokenState || (exports.TokenState = {}));\nvar GatekeeperRecordState;\n(function (GatekeeperRecordState) {\n GatekeeperRecordState[GatekeeperRecordState[\"REQUESTING\"] = 0] = \"REQUESTING\";\n GatekeeperRecordState[GatekeeperRecordState[\"NOT_REQUESTED\"] = 404] = \"NOT_REQUESTED\";\n GatekeeperRecordState[GatekeeperRecordState[\"REQUESTED\"] = 202] = \"REQUESTED\";\n GatekeeperRecordState[GatekeeperRecordState[\"ISSUED\"] = 200] = \"ISSUED\";\n GatekeeperRecordState[GatekeeperRecordState[\"ISSUED_EXPIRY_APPROACHING\"] = 205] = \"ISSUED_EXPIRY_APPROACHING\";\n GatekeeperRecordState[GatekeeperRecordState[\"ISSUED_EXPIRED\"] = 426] = \"ISSUED_EXPIRED\";\n GatekeeperRecordState[GatekeeperRecordState[\"LOCATION_NOT_SUPPORTED\"] = 401] = \"LOCATION_NOT_SUPPORTED\";\n GatekeeperRecordState[GatekeeperRecordState[\"ISSUED_LOCATION_NOT_SUPPORTED\"] = 412] = \"ISSUED_LOCATION_NOT_SUPPORTED\";\n GatekeeperRecordState[GatekeeperRecordState[\"SERVER_FAILURE\"] = 500] = \"SERVER_FAILURE\";\n})(GatekeeperRecordState = exports.GatekeeperRecordState || (exports.GatekeeperRecordState = {}));\nvar GatewayStatus;\n(function (GatewayStatus) {\n GatewayStatus[GatewayStatus[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n GatewayStatus[GatewayStatus[\"CHECKING\"] = 1] = \"CHECKING\";\n GatewayStatus[GatewayStatus[\"NOT_REQUESTED\"] = 2] = \"NOT_REQUESTED\";\n GatewayStatus[GatewayStatus[\"COLLECTING_USER_INFORMATION\"] = 3] = \"COLLECTING_USER_INFORMATION\";\n GatewayStatus[GatewayStatus[\"PROOF_OF_WALLET_OWNERSHIP\"] = 4] = \"PROOF_OF_WALLET_OWNERSHIP\";\n GatewayStatus[GatewayStatus[\"IN_REVIEW\"] = 5] = \"IN_REVIEW\";\n GatewayStatus[GatewayStatus[\"REJECTED\"] = 6] = \"REJECTED\";\n GatewayStatus[GatewayStatus[\"REVOKED\"] = 7] = \"REVOKED\";\n GatewayStatus[GatewayStatus[\"FROZEN\"] = 8] = \"FROZEN\";\n GatewayStatus[GatewayStatus[\"ACTIVE\"] = 9] = \"ACTIVE\";\n GatewayStatus[GatewayStatus[\"ERROR\"] = 10] = \"ERROR\";\n GatewayStatus[GatewayStatus[\"LOCATION_NOT_SUPPORTED\"] = 11] = \"LOCATION_NOT_SUPPORTED\";\n GatewayStatus[GatewayStatus[\"REFRESH_TOKEN_REQUIRED\"] = 12] = \"REFRESH_TOKEN_REQUIRED\";\n GatewayStatus[GatewayStatus[\"VALIDATING_USER_INFORMATION\"] = 13] = \"VALIDATING_USER_INFORMATION\";\n GatewayStatus[GatewayStatus[\"USER_INFORMATION_VALIDATED\"] = 14] = \"USER_INFORMATION_VALIDATED\";\n GatewayStatus[GatewayStatus[\"USER_INFORMATION_REJECTED\"] = 15] = \"USER_INFORMATION_REJECTED\";\n})(GatewayStatus = exports.GatewayStatus || (exports.GatewayStatus = {}));\nvar TokenIssuanceState;\n(function (TokenIssuanceState) {\n TokenIssuanceState[TokenIssuanceState[\"NOT_REQUESTED\"] = 0] = \"NOT_REQUESTED\";\n TokenIssuanceState[TokenIssuanceState[\"IN_PROGRESS\"] = 1] = \"IN_PROGRESS\";\n TokenIssuanceState[TokenIssuanceState[\"COMPLETED\"] = 2] = \"COMPLETED\";\n TokenIssuanceState[TokenIssuanceState[\"FAILED\"] = 3] = \"FAILED\";\n})(TokenIssuanceState = exports.TokenIssuanceState || (exports.TokenIssuanceState = {}));\nvar CivicPassIssuanceStatus;\n(function (CivicPassIssuanceStatus) {\n CivicPassIssuanceStatus[CivicPassIssuanceStatus[\"NOT_REQUESTED\"] = 0] = \"NOT_REQUESTED\";\n CivicPassIssuanceStatus[CivicPassIssuanceStatus[\"REQUESTED\"] = 1] = \"REQUESTED\";\n CivicPassIssuanceStatus[CivicPassIssuanceStatus[\"VERIFIED\"] = 2] = \"VERIFIED\";\n CivicPassIssuanceStatus[CivicPassIssuanceStatus[\"FAILED\"] = 3] = \"FAILED\";\n})(CivicPassIssuanceStatus = exports.CivicPassIssuanceStatus || (exports.CivicPassIssuanceStatus = {}));\nvar RefreshTokenState;\n(function (RefreshTokenState) {\n RefreshTokenState[RefreshTokenState[\"NOT_REQUIRED\"] = 0] = \"NOT_REQUIRED\";\n RefreshTokenState[RefreshTokenState[\"CHECK_TOKEN_EXPIRATION\"] = 1] = \"CHECK_TOKEN_EXPIRATION\";\n RefreshTokenState[RefreshTokenState[\"WAIT_FOR_ON_CHAIN\"] = 2] = \"WAIT_FOR_ON_CHAIN\";\n RefreshTokenState[RefreshTokenState[\"IN_PROGRESS\"] = 3] = \"IN_PROGRESS\";\n RefreshTokenState[RefreshTokenState[\"REQUIRES_POWO\"] = 4] = \"REQUIRES_POWO\";\n RefreshTokenState[RefreshTokenState[\"COMPLETED\"] = 5] = \"COMPLETED\";\n RefreshTokenState[RefreshTokenState[\"CANCELLED\"] = 6] = \"CANCELLED\";\n RefreshTokenState[RefreshTokenState[\"FAILED\"] = 7] = \"FAILED\";\n})(RefreshTokenState = exports.RefreshTokenState || (exports.RefreshTokenState = {}));\nvar ChainType;\n(function (ChainType) {\n ChainType[\"SOLANA\"] = \"solana\";\n ChainType[\"ETHEREUM\"] = \"ethereum\";\n ChainType[\"CASPER\"] = \"casper\";\n})(ChainType = exports.ChainType || (exports.ChainType = {}));\nvar CivicPassMessageEventResult;\n(function (CivicPassMessageEventResult) {\n CivicPassMessageEventResult[\"SUCCESS\"] = \"success\";\n CivicPassMessageEventResult[\"FAILURE\"] = \"failure\";\n CivicPassMessageEventResult[\"CANCELLED\"] = \"cancelled\";\n CivicPassMessageEventResult[\"IN_PROGRESS\"] = \"inProgress\";\n})(CivicPassMessageEventResult = exports.CivicPassMessageEventResult || (exports.CivicPassMessageEventResult = {}));\nvar CivicPassMessageAction;\n(function (CivicPassMessageAction) {\n CivicPassMessageAction[\"ISSUANCE\"] = \"issuance\";\n CivicPassMessageAction[\"CONFIRM_TRANSACTION\"] = \"confirmTransaction\";\n CivicPassMessageAction[\"TOKEN_FROZEN\"] = \"tokenFrozen\";\n CivicPassMessageAction[\"TOKEN_ACTIVE\"] = \"tokenActive\";\n CivicPassMessageAction[\"TOKEN_REVOKED\"] = \"tokenRevoked\";\n CivicPassMessageAction[\"TOKEN_REJECTED\"] = \"tokenRejected\";\n CivicPassMessageAction[\"TOKEN_IN_REVIEW\"] = \"tokenInReview\";\n CivicPassMessageAction[\"FAILED_IP_CHECK\"] = \"failedIpCheck\";\n CivicPassMessageAction[\"REFRESH\"] = \"refresh\";\n CivicPassMessageAction[\"PROOF_OF_WALLET_OWNERSHIP\"] = \"proofOfWalletOwnership\";\n CivicPassMessageAction[\"STATUS\"] = \"status\";\n})(CivicPassMessageAction = exports.CivicPassMessageAction || (exports.CivicPassMessageAction = {}));\nvar ValidationStatus;\n(function (ValidationStatus) {\n // The validation is in progress\n ValidationStatus[\"COLLECTING\"] = \"COLLECTING\";\n // The validation is busy processing\n ValidationStatus[\"PROCESSING\"] = \"PROCESSING\";\n // The validation is in review\n ValidationStatus[\"IN_REVIEW\"] = \"IN_REVIEW\";\n // The validation is completed successfully\n ValidationStatus[\"COMPLETED\"] = \"COMPLETED\";\n // The validation failed\n ValidationStatus[\"FAILED\"] = \"FAILED\";\n // The validation process does not exist\n ValidationStatus[\"NOT_FOUND\"] = \"NOT_FOUND\";\n})(ValidationStatus = exports.ValidationStatus || (exports.ValidationStatus = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst TextDecoder = (typeof global.TextDecoder !== 'function') ? encoding.TextDecoder : global.TextDecoder;\nconst textDecoder = new TextDecoder('utf-8', { fatal: true });\nfunction baseEncode(value) {\n if (typeof (value) === 'string') {\n value = Buffer.from(value, 'utf8');\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + ': ' + this.fieldPath.join('.');\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([Buffer.from(this.buf.subarray(0, this.length)), buffer, Buffer.alloc(INITIAL_LENGTH)]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, 'utf8');\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if (['ERR_BUFFER_OUT_OF_BOUNDS', 'ERR_OUT_OF_RANGE'].indexOf(code) >= 0) {\n throw new BorshError('Reached the end of buffer when deserializing');\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, 'le');\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, 'le');\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, 'le');\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, 'le');\n }\n readBuffer(len) {\n if ((this.offset + len) > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === 'string') {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else {\n writer.writeArray(value, (item) => { serializeField(schema, fieldName, item, fieldType[0], writer); });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case 'option': {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n default: throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === 'enum') {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj) {\n const writer = new BinaryWriter();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === 'string') {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n return reader.readFixedArray(fieldType[0]);\n }\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n if (fieldType.kind === 'option') {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === 'enum') {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer) {\n const reader = new BinaryReader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer) {\n const reader = new BinaryReader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'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","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","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\n\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n const constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\n\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string'; // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n\n\n const isNumber = value => !isNaN(parseFloat(value));\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar 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 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var 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(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var 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(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date time range.', e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var 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(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var 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(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return [];\n}\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}","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","import { deepmerge } from '@mui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","module.exports = require('./lib')(require('./lib/elliptic'))\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","'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","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","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 * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\nexport default Tablelvl2Context;","export var WalletName;\n(function (WalletName) {\n WalletName[\"BitKeep\"] = \"BitKeep\";\n WalletName[\"Bitpie\"] = \"Bitpie\";\n WalletName[\"Blocto\"] = \"Blocto\";\n WalletName[\"Clover\"] = \"Clover\";\n WalletName[\"Coin98\"] = \"Coin98\";\n WalletName[\"Coinhub\"] = \"Coinhub\";\n WalletName[\"Ledger\"] = \"Ledger\";\n WalletName[\"MathWallet\"] = \"MathWallet\";\n WalletName[\"Phantom\"] = \"Phantom\";\n WalletName[\"SafePal\"] = \"SafePal\";\n WalletName[\"Slope\"] = \"Slope\";\n WalletName[\"Solflare\"] = \"Solflare\";\n WalletName[\"SolflareWeb\"] = \"Solflare (Web)\";\n WalletName[\"Sollet\"] = \"Sollet\";\n WalletName[\"SolletExtension\"] = \"Sollet (Extension)\";\n WalletName[\"Solong\"] = \"Solong\";\n WalletName[\"TokenPocket\"] = \"TokenPocket\";\n WalletName[\"Torus\"] = \"Torus\";\n // WalletConnect = 'WalletConnect', // not published yet\n})(WalletName || (WalletName = {}));\n//# sourceMappingURL=types.js.map","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [`${breakpoints.up('xs')} and (orientation: landscape)`]: {\n minHeight: 48\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport { deepmerge } from '@mui/utils';\nimport { darken, getContrastRatio, lighten } from '@mui/system';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\n\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\n\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\n\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\n\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\n\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\n\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n const modes = {\n dark,\n light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common,\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport { deepmerge } from '@mui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n\n const coef = fontSize / 14;\n\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport { generateUtilityClass } from '@mui/base';\nimport { createTheme as systemCreateTheme } from '@mui/system';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\n\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, systemTheme.spacing, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n\n const traverse = (node, component) => {\n let key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n const child = node[key];\n\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n\n return muiTheme;\n}\n\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme(...args);\n}\nexport default createTheme;","import createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar ListContext = React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\n\nexport default ListContext;","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","import { createElement, useContext, useRef, useLayoutEffect, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-699e6908.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-699e6908.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.7.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"mitchellhamilton \",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/sheet\": \"^1.1.0\",\n\t\t\"@emotion/utils\": \"^1.0.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.7.1\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.6.0\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^0.3.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useLayoutEffect(function () {\n var key = cache.key + \"-global\";\n var sheet = new StyleSheet({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useLayoutEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n\n {\n insertStyles(cache, serialized, false);\n }\n\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","\"use strict\";\n/* eslint-disable no-console */\n/* eslint-disable global-require */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useGateway = exports.GatewayProvider = exports.Badge = exports.ButtonMode = exports.getTokenDescription = exports.IdentityButton = exports.GatewayStatus = void 0;\nconst version_1 = __importDefault(require(\"./utils/version\"));\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"GatewayStatus\", { enumerable: true, get: function () { return types_1.GatewayStatus; } });\nvar button_1 = require(\"./button\");\nObject.defineProperty(exports, \"IdentityButton\", { enumerable: true, get: function () { return button_1.IdentityButton; } });\nObject.defineProperty(exports, \"getTokenDescription\", { enumerable: true, get: function () { return button_1.getTokenDescription; } });\nObject.defineProperty(exports, \"ButtonMode\", { enumerable: true, get: function () { return button_1.ButtonMode; } });\n// These will be moved into the Solana Project once we add another chain implementation\nvar badge_1 = require(\"./solana/badge\");\nObject.defineProperty(exports, \"Badge\", { enumerable: true, get: function () { return __importDefault(badge_1).default; } });\nvar solana_1 = require(\"./solana\");\nObject.defineProperty(exports, \"GatewayProvider\", { enumerable: true, get: function () { return solana_1.SolanaGatewayProvider; } });\nObject.defineProperty(exports, \"useGateway\", { enumerable: true, get: function () { return solana_1.useSolanaGateway; } });\nconsole.log(`${(0, version_1.default)()}`);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = require(\"react\");\nconst logger_1 = __importDefault(require(\"../logger\"));\nconst useWallet = (wallet, { refreshTimeoutId }, dispatch) => {\n /**\n * detect a wallet disconnecting and dispatch an event\n */\n (0, react_1.useEffect)(() => {\n if (!wallet || !wallet.publicKey) {\n logger_1.default.debug('wallet disconnected');\n if (refreshTimeoutId) {\n logger_1.default.debug('useEffect cleartimeout', refreshTimeoutId);\n clearTimeout(refreshTimeoutId);\n dispatch({ type: 'refresh_clear_timeout' });\n }\n dispatch({ type: 'walletDisconnected' });\n }\n }, [wallet, refreshTimeoutId]);\n /**\n * expect a connected wallet, throw an error if a vald wallet isn't in state\n */\n const expectWalletConnected = (0, react_1.useCallback)(() => {\n logger_1.default.debug('expectWalletConnected', wallet);\n if (!wallet || !wallet.publicKey) {\n throw new Error('No wallet connnected');\n }\n return wallet;\n }, [wallet]);\n return {\n expectWalletConnected,\n };\n};\nexports.default = useWallet;\n","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import { getNamedFormat, filterProps } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar 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 // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return [];\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Client = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _websocket = _interopRequireDefault(require(\"./lib/client/websocket.browser\"));\n\nvar _client = _interopRequireDefault(require(\"./lib/client\"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nvar Client = /*#__PURE__*/function (_CommonClient) {\n (0, _inherits2[\"default\"])(Client, _CommonClient);\n\n var _super = _createSuper(Client);\n\n function Client() {\n var address = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"ws://localhost:8080\";\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$autoconnect = _ref.autoconnect,\n autoconnect = _ref$autoconnect === void 0 ? true : _ref$autoconnect,\n _ref$reconnect = _ref.reconnect,\n reconnect = _ref$reconnect === void 0 ? true : _ref$reconnect,\n _ref$reconnect_interv = _ref.reconnect_interval,\n reconnect_interval = _ref$reconnect_interv === void 0 ? 1000 : _ref$reconnect_interv,\n _ref$max_reconnects = _ref.max_reconnects,\n max_reconnects = _ref$max_reconnects === void 0 ? 5 : _ref$max_reconnects;\n\n var generate_request_id = arguments.length > 2 ? arguments[2] : undefined;\n (0, _classCallCheck2[\"default\"])(this, Client);\n return _super.call(this, _websocket[\"default\"], address, {\n autoconnect: autoconnect,\n reconnect: reconnect,\n reconnect_interval: reconnect_interval,\n max_reconnects: max_reconnects\n }, generate_request_id);\n }\n\n return Client;\n}(_client[\"default\"]);\n\nexports.Client = Client;","'use strict';\n\nconst uuid = require('uuid').v4;\nconst generateRequest = require('../../generateRequest');\n\n/**\n * Constructor for a Jayson Browser Client that does not depend any node.js core libraries\n * @class ClientBrowser\n * @param {Function} callServer Method that calls the server, receives the stringified request and a regular node-style callback\n * @param {Object} [options]\n * @param {Function} [options.reviver] Reviver function for JSON\n * @param {Function} [options.replacer] Replacer function for JSON\n * @param {Number} [options.version=2] JSON-RPC version to use (1|2)\n * @param {Function} [options.generator] Function to use for generating request IDs\n * @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @return {ClientBrowser}\n */\nconst ClientBrowser = function(callServer, options) {\n if(!(this instanceof ClientBrowser)) {\n return new ClientBrowser(callServer, options);\n }\n\n if (!options) {\n options = {};\n }\n\n this.options = {\n reviver: typeof options.reviver !== 'undefined' ? options.reviver : null,\n replacer: typeof options.replacer !== 'undefined' ? options.replacer : null,\n generator: typeof options.generator !== 'undefined' ? options.generator : function() { return uuid(); },\n version: typeof options.version !== 'undefined' ? options.version : 2,\n notificationIdNull: typeof options.notificationIdNull === 'boolean' ? options.notificationIdNull : false,\n };\n\n this.callServer = callServer;\n};\n\nmodule.exports = ClientBrowser;\n\n/**\n * Creates a request and dispatches it if given a callback.\n * @param {String|Array} method A batch request if passed an Array, or a method name if passed a String\n * @param {Array|Object} [params] Parameters for the method\n * @param {String|Number} [id] Optional id. If undefined an id will be generated. If null it creates a notification request\n * @param {Function} [callback] Request callback. If specified, executes the request rather than only returning it.\n * @throws {TypeError} Invalid parameters\n * @return {Object} JSON-RPC 1.0 or 2.0 compatible request\n */\nClientBrowser.prototype.request = function(method, params, id, callback) {\n const self = this;\n let request = null;\n\n // is this a batch request?\n const isBatch = Array.isArray(method) && typeof params === 'function';\n\n if (this.options.version === 1 && isBatch) {\n throw new TypeError('JSON-RPC 1.0 does not support batching');\n }\n\n // is this a raw request?\n const isRaw = !isBatch && method && typeof method === 'object' && typeof params === 'function';\n\n if(isBatch || isRaw) {\n callback = params;\n request = method;\n } else {\n if(typeof id === 'function') {\n callback = id;\n // specifically undefined because \"null\" is a notification request\n id = undefined;\n }\n\n const hasCallback = typeof callback === 'function';\n\n try {\n request = generateRequest(method, params, id, {\n generator: this.options.generator,\n version: this.options.version,\n notificationIdNull: this.options.notificationIdNull,\n });\n } catch(err) {\n if(hasCallback) {\n return callback(err);\n }\n throw err;\n }\n\n // no callback means we should just return a raw request\n if(!hasCallback) {\n return request;\n }\n\n }\n\n let message;\n try {\n message = JSON.stringify(request, this.options.replacer);\n } catch(err) {\n return callback(err);\n }\n\n this.callServer(message, function(err, response) {\n self._parseResponse(err, response, callback);\n });\n\n // always return the raw request\n return request;\n};\n\n/**\n * Parses a response from a server\n * @param {Object} err Error to pass on that is unrelated to the actual response\n * @param {String} responseText JSON-RPC 1.0 or 2.0 response\n * @param {Function} callback Callback that will receive different arguments depending on the amount of parameters\n * @private\n */\nClientBrowser.prototype._parseResponse = function(err, responseText, callback) {\n if(err) {\n callback(err);\n return;\n }\n\n if(!responseText) {\n // empty response text, assume that is correct because it could be a\n // notification which jayson does not give any body for\n return callback();\n }\n\n let response;\n try {\n response = JSON.parse(responseText, this.options.reviver);\n } catch(err) {\n return callback(err);\n }\n\n if(callback.length === 3) {\n // if callback length is 3, we split callback arguments on error and response\n\n // is batch response?\n if(Array.isArray(response)) {\n\n // neccesary to split strictly on validity according to spec here\n const isError = function(res) {\n return typeof res.error !== 'undefined';\n };\n\n const isNotError = function (res) {\n return !isError(res);\n };\n\n return callback(null, response.filter(isError), response.filter(isNotError));\n \n } else {\n\n // split regardless of validity\n return callback(null, response.error, response.result);\n \n }\n \n }\n\n callback(null, response);\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://material-ui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import React from 'react';\nexport default React.createContext(null);","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__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 function formatMessage(_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlError, IntlErrorCode } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(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 return results.length === 1 ? results[0] : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting list.', e));\n }\n // @ts-ignore\n return values;\n}\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}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","/*\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","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GatewayTokenState = exports.Revoked = exports.Frozen = exports.Active = exports.GatewayTokenData = void 0;\nconst web3_js_1 = require(\"@solana/web3.js\");\nconst solanaBorsh_1 = require(\"./solanaBorsh\");\nconst AssignablePublicKey_1 = require(\"./AssignablePublicKey\");\n/**\n * The on-chain structure of a gateway token.\n * Matches: solana/integration-lib/src/state.rs\n *\n * The pattern for these objects is to have their properties dynamically\n * assigned by borsh.decode, as opposed to via a constructor.\n *\n * The imperative assignment operator (!) is used to avoid Typescript\n * complaining about the above.\n */\nclass GatewayTokenData extends solanaBorsh_1.Assignable {\n static fromAccount(accountData) {\n return GatewayTokenData.decode(accountData);\n }\n forAuthority(authority) {\n return new GatewayTokenData(Object.assign(Object.assign({}, this), { authority: AssignablePublicKey_1.AssignablePublicKey.fromPublicKey(authority) }));\n }\n static empty(owner) {\n return new GatewayTokenData({\n owner: AssignablePublicKey_1.AssignablePublicKey.fromPublicKey(owner || web3_js_1.Keypair.generate().publicKey),\n });\n }\n}\nexports.GatewayTokenData = GatewayTokenData;\nclass Active extends solanaBorsh_1.Assignable {\n}\nexports.Active = Active;\nclass Frozen extends solanaBorsh_1.Assignable {\n}\nexports.Frozen = Frozen;\nclass Revoked extends solanaBorsh_1.Assignable {\n}\nexports.Revoked = Revoked;\nclass GatewayTokenState extends solanaBorsh_1.Enum {\n}\nexports.GatewayTokenState = GatewayTokenState;\nsolanaBorsh_1.SCHEMA.set(GatewayTokenData, {\n kind: \"struct\",\n fields: [\n [\"features\", [1]],\n [\"parentGatewayToken\", { kind: \"option\", type: AssignablePublicKey_1.AssignablePublicKey }],\n [\"owner\", AssignablePublicKey_1.AssignablePublicKey],\n [\"ownerIdentity\", { kind: \"option\", type: AssignablePublicKey_1.AssignablePublicKey }],\n [\"gatekeeperNetwork\", AssignablePublicKey_1.AssignablePublicKey],\n [\"issuingGatekeeper\", AssignablePublicKey_1.AssignablePublicKey],\n [\"state\", GatewayTokenState],\n [\"expiry\", { kind: \"option\", type: \"u64\" }],\n ],\n});\nsolanaBorsh_1.SCHEMA.set(GatewayTokenState, {\n kind: \"enum\",\n field: \"enum\",\n values: [\n [\"active\", Active],\n [\"frozen\", Frozen],\n [\"revoked\", Revoked],\n ],\n});\nsolanaBorsh_1.SCHEMA.set(Active, { kind: \"struct\", fields: [] });\nsolanaBorsh_1.SCHEMA.set(Frozen, { kind: \"struct\", fields: [] });\nsolanaBorsh_1.SCHEMA.set(Revoked, { kind: \"struct\", fields: [] });\n//# sourceMappingURL=GatewayTokenData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeConfig = exports.getGatekeeperEndpoint = exports.GATEKEEPER_ENDPOINTS = exports.urlToCluster = exports.clusterEndpoint = void 0;\nconst web3_js_1 = require(\"@solana/web3.js\");\nconst clusterEndpoint = (cluster) => {\n switch (cluster) {\n case 'civicnet':\n return 'https://d3ab7dlfud2b5u.cloudfront.net';\n case 'localnet':\n return 'http://localhost:8899';\n default: {\n return cluster === 'mainnet-beta'\n ? 'https://civic.rpcpool.com/f40a068020b85335d0c8f2783747/'\n : (0, web3_js_1.clusterApiUrl)(cluster);\n }\n }\n};\nexports.clusterEndpoint = clusterEndpoint;\n// reverse lookup of cluster from url\n// note - this is a \"best-guess\" heuristic. If the client passes an unrecognised\n// url, default to mainnet\nconst urlToCluster = (clusterUrl) => {\n const supportedClusters = ['devnet', 'testnet', 'mainnet-beta', 'civicnet', 'localnet'];\n const matchedUrlCluster = supportedClusters.find((cluster) => (0, exports.clusterEndpoint)(cluster) === clusterUrl);\n if (matchedUrlCluster)\n return matchedUrlCluster;\n const matchedStringCluster = supportedClusters.find((cluster) => clusterUrl.indexOf(cluster) >= 0);\n if (matchedStringCluster)\n return matchedStringCluster;\n return 'mainnet-beta';\n};\nexports.urlToCluster = urlToCluster;\nconst solanaVersionedEndpoint = 'v1/token/solana';\nexports.GATEKEEPER_ENDPOINTS = {\n local: `http://localhost:3001/local/${solanaVersionedEndpoint}`,\n test: `http://localhost:3001/local/${solanaVersionedEndpoint}`,\n dev: `https://dev-gatekeeper-api.civic.com/${solanaVersionedEndpoint}`,\n preprod: `https://preprod-gatekeeper-api.civic.com/${solanaVersionedEndpoint}`,\n prod: `https://gatekeeper-api.civic.com/${solanaVersionedEndpoint}`,\n};\nconst getGatekeeperEndpoint = (stage) => {\n const endpoint = exports.GATEKEEPER_ENDPOINTS[stage];\n if (!endpoint) {\n throw new Error(`Invalid stage ${stage}`);\n }\n return endpoint;\n};\nexports.getGatekeeperEndpoint = getGatekeeperEndpoint;\nconst makeConfig = (clusterUrl) => {\n const cluster = (0, exports.urlToCluster)(clusterUrl);\n return {\n cluster,\n commitment: 'confirmed',\n // this map instructs the POWO library to use clusterUrl\n // to connect to the solana network. This avoids rate limiting issues with using the default\n // public urls\n supportedClusterUrls: {\n [cluster]: clusterUrl,\n },\n recentBlockCheck: false,\n };\n};\nexports.makeConfig = makeConfig;\n","import type { PublicKeyData } from \"@solana/web3.js\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nexport { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Returns true if the given value is a {@link PublicKey}.\n * @param pk\n * @returns\n */\nexport const isPublicKey = (pk: unknown): pk is PublicKey => {\n if (!pk) {\n return false;\n }\n\n if (pk instanceof PublicKey) {\n return true;\n }\n\n if (\n typeof pk !== \"object\" ||\n Array.isArray(pk) ||\n (\"constructor\" in pk && BN.isBN(pk))\n ) {\n return false;\n }\n\n try {\n new PublicKey(pk as PublicKeyData);\n return true;\n } catch (e) {\n return false;\n }\n};\n","export * from './src/types';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\nexport { createIntlCache, filterProps, DEFAULT_INTL_CONFIG, createFormatters, getNamedFormat, } from './src/utils';\nexport * from './src/error';\nexport { formatMessage } from './src/message';\nexport { formatDate, formatDateToParts, formatTime, formatTimeToParts, } from './src/dateTime';\nexport { formatDisplayName } from './src/displayName';\nexport { formatList } from './src/list';\nexport { formatPlural } from './src/plural';\nexport { formatRelativeTime } from './src/relativeTime';\nexport { formatNumber, formatNumberToParts } from './src/number';\nexport { createIntl } from './src/create-intl';\n","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlErrorCode, IntlError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting display name.', e));\n }\n}\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) 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}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n result[key] = iteratee(value, key, object);\n });\n return result;\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = mapValues;\n","import { createContext, useContext } from 'react';\nexport const WalletContext = createContext({});\nexport function useWallet() {\n return useContext(WalletContext);\n}\n//# sourceMappingURL=useWallet.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nconst TableContext = /*#__PURE__*/React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\n\nexport default TableContext;","import { createContext, useContext } from 'react';\nexport const WalletDialogContext = createContext({});\nexport function useWalletDialog() {\n return useContext(WalletDialogContext);\n}\n//# sourceMappingURL=useWalletDialog.js.map","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 { makeStyles } from '@material-ui/core';\nimport React from 'react';\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: theme.spacing(3),\n height: theme.spacing(3),\n },\n}));\nexport const WalletIcon = (_a) => {\n var { wallet } = _a, props = __rest(_a, [\"wallet\"]);\n const styles = useStyles();\n return wallet && React.createElement(\"img\", Object.assign({ src: wallet.icon, alt: `${wallet.name} icon`, className: styles.root }, props));\n};\n//# sourceMappingURL=WalletIcon.js.map","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 { Button } from '@material-ui/core';\nimport { useWallet } from '@solana/wallet-adapter-react';\nimport React, { useCallback, useMemo } from 'react';\nimport { WalletIcon } from './WalletIcon';\nexport const WalletConnectButton = (_a) => {\n var { color = 'primary', variant = 'contained', type = 'button', children, disabled, onClick } = _a, props = __rest(_a, [\"color\", \"variant\", \"type\", \"children\", \"disabled\", \"onClick\"]);\n const { wallet, connect, connecting, connected } = useWallet();\n const handleClick = useCallback((event) => {\n if (onClick)\n onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented)\n connect().catch(() => {\n // Silently catch because any errors are caught by the context `onError` handler\n });\n }, [onClick, connect]);\n const content = useMemo(() => {\n if (children)\n return children;\n if (connecting)\n return 'Connecting ...';\n if (connected)\n return 'Connected';\n if (wallet)\n return 'Connect';\n return 'Connect Wallet';\n }, [children, connecting, connected, wallet]);\n return (React.createElement(Button, Object.assign({ color: color, variant: variant, type: type, onClick: handleClick, disabled: disabled || !wallet || connecting || connected, startIcon: React.createElement(WalletIcon, { wallet: wallet }) }, props), content));\n};\n//# sourceMappingURL=WalletConnectButton.js.map","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport setRef from '../utils/setRef';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container; // #StrictMode ready\n\n return ReactDOM.findDOMNode(container);\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\nvar Portal = /*#__PURE__*/React.forwardRef(function Portal(props, ref) {\n var children = props.children,\n container = props.container,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n onRendered = props.onRendered;\n\n var _React$useState = React.useState(null),\n mountNode = _React$useState[0],\n setMountNode = _React$useState[1];\n\n var handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, ref);\n useEnhancedEffect(function () {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(function () {\n if (mountNode && !disablePortal) {\n setRef(ref, mountNode);\n return function () {\n setRef(ref, null);\n };\n }\n\n return undefined;\n }, [ref, mountNode, disablePortal]);\n useEnhancedEffect(function () {\n if (onRendered && (mountNode || disablePortal)) {\n onRendered();\n }\n }, [onRendered, mountNode, disablePortal]);\n\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n return /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n });\n }\n\n return children;\n }\n\n return mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode;\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n\n /**\n * A HTML element, component instance, or function that returns either.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.instanceOf(React.Component), PropTypes.func]),\n\n /**\n * Disable the portal behavior.\n * The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Callback fired once the children has been mounted into the `container`.\n *\n * This prop will be removed in v5, the ref can be used instead.\n * @deprecated Use the ref instead.\n */\n onRendered: deprecatedPropType(PropTypes.func, 'Use the ref instead.')\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\n\nexport default Portal;","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519\nexport default function getScrollbarSize() {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.width = '99px';\n scrollDiv.style.height = '99px';\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarSize;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow'; // Is a vertical scrollbar displayed?\n\nfunction isOverflowing(container) {\n var doc = ownerDocument(container);\n\n if (doc.body === container) {\n return ownerWindow(doc).innerWidth > doc.documentElement.clientWidth;\n }\n\n return container.scrollHeight > container.clientHeight;\n}\n\nexport function ariaHidden(node, show) {\n if (show) {\n node.setAttribute('aria-hidden', 'true');\n } else {\n node.removeAttribute('aria-hidden');\n }\n}\n\nfunction getPaddingRight(node) {\n return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;\n}\n\nfunction ariaHiddenSiblings(container, mountNode, currentNode) {\n var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n var show = arguments.length > 4 ? arguments[4] : undefined;\n var blacklist = [mountNode, currentNode].concat(_toConsumableArray(nodesToExclude));\n var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];\n [].forEach.call(container.children, function (node) {\n if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {\n ariaHidden(node, show);\n }\n });\n}\n\nfunction findIndexOf(containerInfo, callback) {\n var idx = -1;\n containerInfo.some(function (item, index) {\n if (callback(item)) {\n idx = index;\n return true;\n }\n\n return false;\n });\n return idx;\n}\n\nfunction handleContainer(containerInfo, props) {\n var restoreStyle = [];\n var restorePaddings = [];\n var container = containerInfo.container;\n var fixedNodes;\n\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n var scrollbarSize = getScrollbarSize();\n restoreStyle.push({\n value: container.style.paddingRight,\n key: 'padding-right',\n el: container\n }); // Use computed style, here to get the real padding to add our scrollbar width.\n\n container.style['padding-right'] = \"\".concat(getPaddingRight(container) + scrollbarSize, \"px\"); // .mui-fixed is a global helper.\n\n fixedNodes = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedNodes, function (node) {\n restorePaddings.push(node.style.paddingRight);\n node.style.paddingRight = \"\".concat(getPaddingRight(node) + scrollbarSize, \"px\");\n });\n } // Improve Gatsby support\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n\n\n var parent = container.parentElement;\n var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n key: 'overflow',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n\n var restore = function restore() {\n if (fixedNodes) {\n [].forEach.call(fixedNodes, function (node, i) {\n if (restorePaddings[i]) {\n node.style.paddingRight = restorePaddings[i];\n } else {\n node.style.removeProperty('padding-right');\n }\n });\n }\n\n restoreStyle.forEach(function (_ref) {\n var value = _ref.value,\n el = _ref.el,\n key = _ref.key;\n\n if (value) {\n el.style.setProperty(key, value);\n } else {\n el.style.removeProperty(key);\n }\n });\n };\n\n return restore;\n}\n\nfunction getHiddenSiblings(container) {\n var hiddenSiblings = [];\n [].forEach.call(container.children, function (node) {\n if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(node);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\n\n\nvar ModalManager = /*#__PURE__*/function () {\n function ModalManager() {\n _classCallCheck(this, ModalManager);\n\n // this.modals[modalIndex] = modal\n this.modals = []; // this.containers[containerIndex] = {\n // modals: [],\n // container,\n // restore: null,\n // }\n\n this.containers = [];\n }\n\n _createClass(ModalManager, [{\n key: \"add\",\n value: function add(modal, container) {\n var modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex !== -1) {\n return modalIndex;\n }\n\n modalIndex = this.modals.length;\n this.modals.push(modal); // If the modal we are adding is already in the DOM.\n\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n\n var hiddenSiblingNodes = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.container === container;\n });\n\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n\n this.containers.push({\n modals: [modal],\n container: container,\n restore: null,\n hiddenSiblingNodes: hiddenSiblingNodes\n });\n return modalIndex;\n }\n }, {\n key: \"mount\",\n value: function mount(modal, props) {\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.modals.indexOf(modal) !== -1;\n });\n var containerInfo = this.containers[containerIndex];\n\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(modal) {\n var modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex === -1) {\n return modalIndex;\n }\n\n var containerIndex = findIndexOf(this.containers, function (item) {\n return item.modals.indexOf(modal) !== -1;\n });\n var containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.\n\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, true);\n }\n\n ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n\n return modalIndex;\n }\n }, {\n key: \"isTopModal\",\n value: function isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n }]);\n\n return ModalManager;\n}();\n\nexport { ModalManager as default };","/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport useForkRef from '../utils/useForkRef';\nimport { exactProp } from '@material-ui/utils';\n/**\n * Utility component that locks focus inside the component.\n */\n\nfunction Unstable_TrapFocus(props) {\n var children = props.children,\n _props$disableAutoFoc = props.disableAutoFocus,\n disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$disableEnforce = props.disableEnforceFocus,\n disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n _props$disableRestore = props.disableRestoreFocus,\n disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n getDoc = props.getDoc,\n isEnabled = props.isEnabled,\n open = props.open;\n var ignoreNextEnforceFocus = React.useRef();\n var sentinelStart = React.useRef(null);\n var sentinelEnd = React.useRef(null);\n var nodeToRestore = React.useRef();\n var rootRef = React.useRef(null); // can be removed once we drop support for non ref forwarding class components\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n rootRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(children.ref, handleOwnRef);\n var prevOpenRef = React.useRef();\n React.useEffect(function () {\n prevOpenRef.current = open;\n }, [open]);\n\n if (!prevOpenRef.current && open && typeof window !== 'undefined') {\n // WARNING: Potentially unsafe in concurrent mode.\n // The way the read on `nodeToRestore` is setup could make this actually safe.\n // Say we render `open={false}` -> `open={true}` but never commit.\n // We have now written a state that wasn't committed. But no committed effect\n // will read this wrong value. We only read from `nodeToRestore` in effects\n // that were committed on `open={true}`\n // WARNING: Prevents the instance from being garbage collected. Should only\n // hold a weak ref.\n nodeToRestore.current = getDoc().activeElement;\n }\n\n React.useEffect(function () {\n if (!open) {\n return;\n }\n\n var doc = ownerDocument(rootRef.current); // We might render an empty child.\n\n if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n if (!rootRef.current.hasAttribute('tabIndex')) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['Material-UI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n }\n\n rootRef.current.setAttribute('tabIndex', -1);\n }\n\n rootRef.current.focus();\n }\n\n var contain = function contain() {\n var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.\n // Contain can be called between the component being unmounted and its cleanup function being run.\n\n if (rootElement === null) {\n return;\n }\n\n if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {\n ignoreNextEnforceFocus.current = false;\n return;\n }\n\n if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n rootRef.current.focus();\n }\n };\n\n var loopFocus = function loopFocus(event) {\n // 9 = Tab\n if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {\n return;\n } // Make sure the next tab starts from the right place.\n\n\n if (doc.activeElement === rootRef.current) {\n // We need to ignore the next contain as\n // it will try to move the focus back to the rootRef element.\n ignoreNextEnforceFocus.current = true;\n\n if (event.shiftKey) {\n sentinelEnd.current.focus();\n } else {\n sentinelStart.current.focus();\n }\n }\n };\n\n doc.addEventListener('focus', contain, true);\n doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area\n // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n //\n // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n\n var interval = setInterval(function () {\n contain();\n }, 50);\n return function () {\n clearInterval(interval);\n doc.removeEventListener('focus', contain, true);\n doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()\n\n if (!disableRestoreFocus) {\n // In IE 11 it is possible for document.activeElement to be null resulting\n // in nodeToRestore.current being null.\n // Not all elements in IE 11 have a focus method.\n // Once IE 11 support is dropped the focus() call can be unconditional.\n if (nodeToRestore.current && nodeToRestore.current.focus) {\n nodeToRestore.current.focus();\n }\n\n nodeToRestore.current = null;\n }\n };\n }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStart,\n \"data-test\": \"sentinelStart\"\n }), /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef\n }), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEnd,\n \"data-test\": \"sentinelEnd\"\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Unstable_TrapFocus.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: PropTypes.node,\n\n /**\n * If `true`, the trap focus will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any trap focus children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the trap focus less\n * accessible to assistive technologies, like screen readers.\n */\n disableAutoFocus: PropTypes.bool,\n\n /**\n * If `true`, the trap focus will not prevent focus from leaving the trap focus while open.\n *\n * Generally this should never be set to `true` as it makes the trap focus less\n * accessible to assistive technologies, like screen readers.\n */\n disableEnforceFocus: PropTypes.bool,\n\n /**\n * If `true`, the trap focus will not restore focus to previously focused element once\n * trap focus is hidden.\n */\n disableRestoreFocus: PropTypes.bool,\n\n /**\n * Return the document to consider.\n * We use it to implement the restore focus between different browser documents.\n */\n getDoc: PropTypes.func.isRequired,\n\n /**\n * Do we still want to enforce the focus?\n * This prop helps nesting TrapFocus elements.\n */\n isEnabled: PropTypes.func.isRequired,\n\n /**\n * If `true`, focus will be locked.\n */\n open: PropTypes.bool.isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Unstable_TrapFocus['propTypes' + ''] = exactProp(Unstable_TrapFocus.propTypes);\n}\n\nexport default Unstable_TrapFocus;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n zIndex: -1,\n position: 'fixed',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SimpleBackdrop = /*#__PURE__*/React.forwardRef(function SimpleBackdrop(props, ref) {\n var _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n other = _objectWithoutProperties(props, [\"invisible\", \"open\"]);\n\n return open ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-hidden\": true,\n ref: ref\n }, other, {\n style: _extends({}, styles.root, invisible ? styles.invisible : {}, other.style)\n })) : null;\n});\nprocess.env.NODE_ENV !== \"production\" ? SimpleBackdrop.propTypes = {\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n */\n invisible: PropTypes.bool,\n\n /**\n * If `true`, the backdrop is open.\n */\n open: PropTypes.bool.isRequired\n} : void 0;\nexport default SimpleBackdrop;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { getThemeProps, useTheme } from '@material-ui/styles';\nimport { elementAcceptingRef, HTMLElementType } from '@material-ui/utils';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport ownerDocument from '../utils/ownerDocument';\nimport Portal from '../Portal';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport zIndex from '../styles/zIndex';\nimport ModalManager, { ariaHidden } from './ModalManager';\nimport TrapFocus from '../Unstable_TrapFocus';\nimport SimpleBackdrop from './SimpleBackdrop';\n\nfunction getContainer(container) {\n container = typeof container === 'function' ? container() : container;\n return ReactDOM.findDOMNode(container);\n}\n\nfunction getHasTransition(props) {\n return props.children ? props.children.props.hasOwnProperty('in') : false;\n} // A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\n\n\nvar defaultManager = new ModalManager();\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'fixed',\n zIndex: theme.zIndex.modal,\n right: 0,\n bottom: 0,\n top: 0,\n left: 0\n },\n\n /* Styles applied to the root element if the `Modal` has exited. */\n hidden: {\n visibility: 'hidden'\n }\n };\n};\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/api/dialog/)\n * - [Drawer](/api/drawer/)\n * - [Menu](/api/menu/)\n * - [Popover](/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\n\nvar Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {\n var theme = useTheme();\n var props = getThemeProps({\n name: 'MuiModal',\n props: _extends({}, inProps),\n theme: theme\n });\n\n var _props$BackdropCompon = props.BackdropComponent,\n BackdropComponent = _props$BackdropCompon === void 0 ? SimpleBackdrop : _props$BackdropCompon,\n BackdropProps = props.BackdropProps,\n children = props.children,\n _props$closeAfterTran = props.closeAfterTransition,\n closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,\n container = props.container,\n _props$disableAutoFoc = props.disableAutoFocus,\n disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEnforce = props.disableEnforceFocus,\n disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$disablePortal = props.disablePortal,\n disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n _props$disableRestore = props.disableRestoreFocus,\n disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n _props$disableScrollL = props.disableScrollLock,\n disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,\n _props$hideBackdrop = props.hideBackdrop,\n hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,\n _props$keepMounted = props.keepMounted,\n keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,\n _props$manager = props.manager,\n manager = _props$manager === void 0 ? defaultManager : _props$manager,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onRendered = props.onRendered,\n open = props.open,\n other = _objectWithoutProperties(props, [\"BackdropComponent\", \"BackdropProps\", \"children\", \"closeAfterTransition\", \"container\", \"disableAutoFocus\", \"disableBackdropClick\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"manager\", \"onBackdropClick\", \"onClose\", \"onEscapeKeyDown\", \"onRendered\", \"open\"]);\n\n var _React$useState = React.useState(true),\n exited = _React$useState[0],\n setExited = _React$useState[1];\n\n var modal = React.useRef({});\n var mountNodeRef = React.useRef(null);\n var modalRef = React.useRef(null);\n var handleRef = useForkRef(modalRef, ref);\n var hasTransition = getHasTransition(props);\n\n var getDoc = function getDoc() {\n return ownerDocument(mountNodeRef.current);\n };\n\n var getModal = function getModal() {\n modal.current.modalRef = modalRef.current;\n modal.current.mountNode = mountNodeRef.current;\n return modal.current;\n };\n\n var handleMounted = function handleMounted() {\n manager.mount(getModal(), {\n disableScrollLock: disableScrollLock\n }); // Fix a bug on Chrome where the scroll isn't initially 0.\n\n modalRef.current.scrollTop = 0;\n };\n\n var handleOpen = useEventCallback(function () {\n var resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer); // The element was already mounted.\n\n if (modalRef.current) {\n handleMounted();\n }\n });\n var isTopModal = React.useCallback(function () {\n return manager.isTopModal(getModal());\n }, [manager]);\n var handlePortalRef = useEventCallback(function (node) {\n mountNodeRef.current = node;\n\n if (!node) {\n return;\n }\n\n if (onRendered) {\n onRendered();\n }\n\n if (open && isTopModal()) {\n handleMounted();\n } else {\n ariaHidden(modalRef.current, true);\n }\n });\n var handleClose = React.useCallback(function () {\n manager.remove(getModal());\n }, [manager]);\n React.useEffect(function () {\n return function () {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(function () {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n\n var handleEnter = function handleEnter() {\n setExited(false);\n };\n\n var handleExited = function handleExited() {\n setExited(true);\n\n if (closeAfterTransition) {\n handleClose();\n }\n };\n\n var handleBackdropClick = function handleBackdropClick(event) {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviours like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || !isTopModal()) {\n return;\n }\n\n if (onEscapeKeyDown) {\n onEscapeKeyDown(event);\n }\n\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n\n var inlineStyle = styles(theme || {\n zIndex: zIndex\n });\n var childProps = {};\n\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = children.props.tabIndex || '-1';\n } // It's a Transition like component\n\n\n if (hasTransition) {\n childProps.onEnter = createChainedFunction(handleEnter, children.props.onEnter);\n childProps.onExited = createChainedFunction(handleExited, children.props.onExited);\n }\n\n return /*#__PURE__*/React.createElement(Portal, {\n ref: handlePortalRef,\n container: container,\n disablePortal: disablePortal\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: handleRef,\n onKeyDown: handleKeyDown,\n role: \"presentation\"\n }, other, {\n style: _extends({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)\n }), hideBackdrop ? null : /*#__PURE__*/React.createElement(BackdropComponent, _extends({\n open: open,\n onClick: handleBackdropClick\n }, BackdropProps)), /*#__PURE__*/React.createElement(TrapFocus, {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n getDoc: getDoc,\n isEnabled: isTopModal,\n open: open\n }, /*#__PURE__*/React.cloneElement(children, childProps))));\n});\nprocess.env.NODE_ENV !== \"production\" ? Modal.propTypes = {\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n */\n BackdropComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Backdrop`](/api/backdrop/) element.\n */\n BackdropProps: PropTypes.object,\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n\n /**\n * When set to true the Modal waits until a nested Transition is completed before closing.\n */\n closeAfterTransition: PropTypes.bool,\n\n /**\n * A HTML element, component instance, or function that returns either.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.instanceOf(React.Component), PropTypes.func]),\n\n /**\n * If `true`, the modal will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n */\n disableAutoFocus: PropTypes.bool,\n\n /**\n * If `true`, clicking the backdrop will not fire `onClose`.\n */\n disableBackdropClick: deprecatedPropType(PropTypes.bool, 'Use the onClose prop with the `reason` argument to filter the `backdropClick` events.'),\n\n /**\n * If `true`, the modal will not prevent focus from leaving the modal while open.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n */\n disableEnforceFocus: PropTypes.bool,\n\n /**\n * If `true`, hitting escape will not fire `onClose`.\n */\n disableEscapeKeyDown: PropTypes.bool,\n\n /**\n * Disable the portal behavior.\n * The children stay within it's parent DOM hierarchy.\n */\n disablePortal: PropTypes.bool,\n\n /**\n * If `true`, the modal will not restore focus to previously focused element once\n * modal is hidden.\n */\n disableRestoreFocus: PropTypes.bool,\n\n /**\n * Disable the scroll lock behavior.\n */\n disableScrollLock: PropTypes.bool,\n\n /**\n * If `true`, the backdrop is not rendered.\n */\n hideBackdrop: PropTypes.bool,\n\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Modal.\n */\n keepMounted: PropTypes.bool,\n\n /**\n * @ignore\n */\n manager: PropTypes.object,\n\n /**\n * Callback fired when the backdrop is clicked.\n */\n onBackdropClick: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `backdropClick` events.'),\n\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired when the escape key is pressed,\n * `disableEscapeKeyDown` is false and the modal is in focus.\n */\n onEscapeKeyDown: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.'),\n\n /**\n * Callback fired once the children has been mounted into the `container`.\n * It signals that the `open={true}` prop took effect.\n *\n * This prop will be removed in v5, the ref can be used instead.\n */\n onRendered: deprecatedPropType(PropTypes.func, 'Use the ref instead.'),\n\n /**\n * If `true`, the modal is open.\n */\n open: PropTypes.bool.isRequired\n} : void 0;\nexport default Modal;","import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","export var reflow = function reflow(node) {\n return node.scrollTop;\n};\nexport function getTransitionProps(props, options) {\n var timeout = props.timeout,\n _props$style = props.style,\n style = _props$style === void 0 ? {} : _props$style;\n return {\n duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { duration } from '../styles/transitions';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nvar styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\nvar defaultTimeout = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * The Fade transition is used by the [Modal](/components/modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"TransitionComponent\", \"timeout\"]);\n\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var transitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n timeout: timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Fade.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Fade;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Fade from '../Fade';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n // Improve scrollable dialog support.\n zIndex: -1,\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n },\n\n /* Styles applied to the root element if `invisible={true}`. */\n invisible: {\n backgroundColor: 'transparent'\n }\n};\nvar Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$invisible = props.invisible,\n invisible = _props$invisible === void 0 ? false : _props$invisible,\n open = props.open,\n transitionDuration = props.transitionDuration,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"invisible\", \"open\", \"transitionDuration\", \"TransitionComponent\"]);\n\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.root, className, invisible && classes.invisible),\n \"aria-hidden\": true,\n ref: ref\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n */\n invisible: PropTypes.bool,\n\n /**\n * If `true`, the backdrop is open.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiBackdrop'\n})(Backdrop);","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n */\n elevation: chainPropTypes(PropTypes.number, function (props) {\n var classes = props.classes,\n elevation = props.elevation; // in case `withStyles` fails to inject we don't need this warning\n\n if (classes === undefined) {\n return null;\n }\n\n if (elevation != null && classes[\"elevation\".concat(elevation)] === undefined) {\n return new Error(\"Material-UI: This elevation `\".concat(elevation, \"` is not implemented.\"));\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n */\n square: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['elevation', 'outlined'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport Modal from '../Modal';\nimport Backdrop from '../Backdrop';\nimport Fade from '../Fade';\nimport { duration } from '../styles/transitions';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n },\n\n /* Styles applied to the container element if `scroll=\"paper\"`. */\n scrollPaper: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n /* Styles applied to the container element if `scroll=\"body\"`. */\n scrollBody: {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n },\n\n /* Styles applied to the container element. */\n container: {\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n },\n\n /* Styles applied to the `Paper` component. */\n paper: {\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE 11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n },\n\n /* Styles applied to the `Paper` component if `scroll=\"paper\"`. */\n paperScrollPaper: {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `scroll=\"body\"`. */\n paperScrollBody: {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE 11\n\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=false`. */\n paperWidthFalse: {\n maxWidth: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"xs\"`. */\n paperWidthXs: {\n maxWidth: Math.max(theme.breakpoints.values.xs, 444),\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"sm\"`. */\n paperWidthSm: {\n maxWidth: theme.breakpoints.values.sm,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"md\"`. */\n paperWidthMd: {\n maxWidth: theme.breakpoints.values.md,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"lg\"`. */\n paperWidthLg: {\n maxWidth: theme.breakpoints.values.lg,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `maxWidth=\"xl\"`. */\n paperWidthXl: {\n maxWidth: theme.breakpoints.values.xl,\n '&$paperScrollBody': _defineProperty({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {\n maxWidth: 'calc(100% - 64px)'\n })\n },\n\n /* Styles applied to the `Paper` component if `fullWidth={true}`. */\n paperFullWidth: {\n width: 'calc(100% - 64px)'\n },\n\n /* Styles applied to the `Paper` component if `fullScreen={true}`. */\n paperFullScreen: {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n '&$paperScrollBody': {\n margin: 0,\n maxWidth: '100%'\n }\n }\n };\n};\nvar defaultTransitionDuration = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nvar Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {\n var BackdropProps = props.BackdropProps,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableBackdro = props.disableBackdropClick,\n disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n _props$disableEscapeK = props.disableEscapeKeyDown,\n disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n _props$fullScreen = props.fullScreen,\n fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,\n _props$fullWidth = props.fullWidth,\n fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n _props$maxWidth = props.maxWidth,\n maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,\n onBackdropClick = props.onBackdropClick,\n onClose = props.onClose,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onEscapeKeyDown = props.onEscapeKeyDown,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperComponent = props.PaperComponent,\n PaperComponent = _props$PaperComponent === void 0 ? Paper : _props$PaperComponent,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$scroll = props.scroll,\n scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,\n TransitionProps = props.TransitionProps,\n ariaDescribedby = props['aria-describedby'],\n ariaLabelledby = props['aria-labelledby'],\n other = _objectWithoutProperties(props, [\"BackdropProps\", \"children\", \"classes\", \"className\", \"disableBackdropClick\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onEscapeKeyDown\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\", \"aria-describedby\", \"aria-labelledby\"]);\n\n var mouseDownTarget = React.useRef();\n\n var handleMouseDown = function handleMouseDown(event) {\n mouseDownTarget.current = event.target;\n };\n\n var handleBackdropClick = function handleBackdropClick(event) {\n // Ignore the events not coming from the \"backdrop\"\n // We don't want to close the dialog when clicking the dialog content.\n if (event.target !== event.currentTarget) {\n return;\n } // Make sure the event starts and ends on the same DOM element.\n\n\n if (event.target !== mouseDownTarget.current) {\n return;\n }\n\n mouseDownTarget.current = null;\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (!disableBackdropClick && onClose) {\n onClose(event, 'backdropClick');\n }\n };\n\n return /*#__PURE__*/React.createElement(Modal, _extends({\n className: clsx(classes.root, className),\n BackdropComponent: Backdrop,\n BackdropProps: _extends({\n transitionDuration: transitionDuration\n }, BackdropProps),\n closeAfterTransition: true\n }, disableBackdropClick ? {\n disableBackdropClick: disableBackdropClick\n } : {}, {\n disableEscapeKeyDown: disableEscapeKeyDown,\n onEscapeKeyDown: onEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered,\n onExit: onExit,\n onExiting: onExiting,\n onExited: onExited,\n role: \"none presentation\"\n }, TransitionProps), /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.container, classes[\"scroll\".concat(capitalize(scroll))]),\n onMouseUp: handleBackdropClick,\n onMouseDown: handleMouseDown\n }, /*#__PURE__*/React.createElement(PaperComponent, _extends({\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, classes[\"paperScroll\".concat(capitalize(scroll))], classes[\"paperWidth\".concat(capitalize(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)\n }), children))));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, clicking the backdrop will not fire the `onClose` callback.\n * @deprecated Use the onClose prop with the `reason` argument to filter the `backdropClick` events.\n */\n disableBackdropClick: deprecatedPropType(PropTypes.bool, 'Use the onClose prop with the `reason` argument to filter the `backdropClick` events.'),\n\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n */\n disableEscapeKeyDown: PropTypes.bool,\n\n /**\n * If `true`, the dialog will be full-screen\n */\n fullScreen: PropTypes.bool,\n\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n */\n fullWidth: PropTypes.bool,\n\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n */\n maxWidth: PropTypes.oneOf(['lg', 'md', 'sm', 'xl', 'xs', false]),\n\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the onClose prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `backdropClick` events.'),\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the dialog enters.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEnter: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog has entered.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntered: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntering: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the escape key is pressed,\n * `disableKeyboard` is false and the modal is in focus.\n * @deprecated Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.\n */\n onEscapeKeyDown: deprecatedPropType(PropTypes.func, 'Use the onClose prop with the `reason` argument to handle the `escapeKeyDown` events.'),\n\n /**\n * Callback fired before the dialog exits.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExit: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog has exited.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExited: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the dialog is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExiting: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * If `true`, the Dialog is open.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * The component used to render the body of the dialog.\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Determine the container for scrolling the dialog.\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialog'\n})(Dialog);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n margin: 0,\n padding: '16px 24px',\n flex: '0 0 auto'\n }\n};\nvar DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other), disableTypography ? children : /*#__PURE__*/React.createElement(Typography, {\n component: \"h2\",\n variant: \"h6\"\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the children won't be wrapped by a typography component.\n * For instance, this can be useful to render an h4 instead of the default h2.\n */\n disableTypography: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogTitle'\n})(DialogTitle);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport { alpha } from '../styles/colorManipulator';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n textAlign: 'center',\n flex: '0 0 auto',\n fontSize: theme.typography.pxToRem(24),\n padding: 12,\n borderRadius: '50%',\n overflow: 'visible',\n // Explicitly set the default value to solve a bug on IE 11.\n color: theme.palette.action.active,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shortest\n }),\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n backgroundColor: 'transparent',\n color: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if `edge=\"start\"`. */\n edgeStart: {\n marginLeft: -12,\n '$sizeSmall&': {\n marginLeft: -3\n }\n },\n\n /* Styles applied to the root element if `edge=\"end\"`. */\n edgeEnd: {\n marginRight: -12,\n '$sizeSmall&': {\n marginRight: -3\n }\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Styles applied to the root element if `size=\"small\"`. */\n sizeSmall: {\n padding: 3,\n fontSize: theme.typography.pxToRem(18)\n },\n\n /* Styles applied to the children container element. */\n label: {\n width: '100%',\n display: 'flex',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n }\n };\n};\n/**\n * Refer to the [Icons](/components/icons/) section of the documentation\n * regarding the available icon options.\n */\n\nvar IconButton = /*#__PURE__*/React.forwardRef(function IconButton(props, ref) {\n var _props$edge = props.edge,\n edge = _props$edge === void 0 ? false : _props$edge,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'default' : _props$color,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"edge\", \"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n className: clsx(classes.root, className, color !== 'default' && classes[\"color\".concat(capitalize(color))], disabled && classes.disabled, size === \"small\" && classes[\"size\".concat(capitalize(size))], {\n 'start': classes.edgeStart,\n 'end': classes.edgeEnd\n }[edge]),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.label\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? IconButton.propTypes = {\n /**\n * The icon element.\n */\n children: chainPropTypes(PropTypes.node, function (props) {\n var found = React.Children.toArray(props.children).some(function (child) {\n return /*#__PURE__*/React.isValidElement(child) && child.props.onClick;\n });\n\n if (found) {\n return new Error(['Material-UI: You are providing an onClick event listener ' + 'to a child of a button element.', 'Firefox will never trigger the event.', 'You should move the onClick listener to the parent button element.', 'https://github.com/mui-org/material-ui/issues/13957'].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n */\n edge: PropTypes.oneOf(['start', 'end', false]),\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: PropTypes.oneOf(['small', 'medium'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiIconButton'\n})(IconButton);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n flex: '1 1 auto',\n WebkitOverflowScrolling: 'touch',\n // Add iOS momentum scrolling.\n overflowY: 'auto',\n padding: '8px 24px',\n '&:first-child': {\n // dialog without title\n paddingTop: 20\n }\n },\n\n /* Styles applied to the root element if `dividers={true}`. */\n dividers: {\n padding: '16px 24px',\n borderTop: \"1px solid \".concat(theme.palette.divider),\n borderBottom: \"1px solid \".concat(theme.palette.divider)\n }\n };\n};\nvar DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$dividers = props.dividers,\n dividers = _props$dividers === void 0 ? false : _props$dividers,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"dividers\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, dividers && classes.dividers),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Display the top and bottom dividers.\n */\n dividers: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogContent'\n})(DialogContent);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ListContext from './ListContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n },\n\n /* Styles applied to the root element if `disablePadding={false}`. */\n padding: {\n paddingTop: 8,\n paddingBottom: 8\n },\n\n /* Styles applied to the root element if dense. */\n dense: {},\n\n /* Styles applied to the root element if a `subheader` is provided. */\n subheader: {\n paddingTop: 0\n }\n};\nvar List = /*#__PURE__*/React.forwardRef(function List(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'ul' : _props$component,\n _props$dense = props.dense,\n dense = _props$dense === void 0 ? false : _props$dense,\n _props$disablePadding = props.disablePadding,\n disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding,\n subheader = props.subheader,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"]);\n\n var context = React.useMemo(function () {\n return {\n dense: dense\n };\n }, [dense]);\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),\n ref: ref\n }, other), subheader, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input will be used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n */\n dense: PropTypes.bool,\n\n /**\n * If `true`, vertical padding will be removed from the list.\n */\n disablePadding: PropTypes.bool,\n\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiList'\n})(List);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { chainPropTypes } from '@material-ui/utils';\nimport { Transition } from 'react-transition-group';\nimport withStyles from '../styles/withStyles';\nimport { duration } from '../styles/transitions';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport { getTransitionProps } from '../transitions/utils';\nimport useTheme from '../styles/useTheme';\nimport { useForkRef } from '../utils';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height')\n },\n\n /* Styles applied to the root element when the transition has entered. */\n entered: {\n height: 'auto',\n overflow: 'visible'\n },\n\n /* Styles applied to the root element when the transition has exited and `collapsedSize` != 0px. */\n hidden: {\n visibility: 'hidden'\n },\n\n /* Styles applied to the outer wrapper element. */\n wrapper: {\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex'\n },\n\n /* Styles applied to the inner wrapper element. */\n wrapperInner: {\n width: '100%'\n }\n };\n};\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/components/steppers/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Collapse = /*#__PURE__*/React.forwardRef(function Collapse(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n collapsedHeight = props.collapsedHeight,\n _props$collapsedSize = props.collapsedSize,\n collapsedSizeProp = _props$collapsedSize === void 0 ? '0px' : _props$collapsedSize,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? duration.standard : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"collapsedHeight\", \"collapsedSize\", \"component\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var theme = useTheme();\n var timer = React.useRef();\n var wrapperRef = React.useRef(null);\n var autoTransitionDuration = React.useRef();\n var collapsedSize = typeof (collapsedHeight || collapsedSizeProp) === 'number' ? \"\".concat(collapsedHeight || collapsedSizeProp, \"px\") : collapsedHeight || collapsedSizeProp;\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var handleRef = useForkRef(ref, enableStrictModeCompat ? nodeRef : undefined);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n node.style.height = collapsedSize;\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {\n var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration;\n\n if (timeout === 'auto') {\n var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n }\n\n node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(function (node, isAppearing) {\n node.style.height = 'auto';\n\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n var handleExit = normalizedTransitionCallback(function (node) {\n var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n var handleExiting = normalizedTransitionCallback(function (node) {\n var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration;\n\n if (timeout === 'auto') {\n var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n }\n\n node.style.height = collapsedSize;\n\n if (onExiting) {\n onExiting(node);\n }\n });\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTransitionDuration.current || 0);\n }\n };\n\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, classes.container, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: _extends({\n minHeight: collapsedSize\n }, style),\n ref: handleRef\n }, childProps), /*#__PURE__*/React.createElement(\"div\", {\n className: classes.wrapper,\n ref: wrapperRef\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.wrapperInner\n }, children)));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: chainPropTypes(PropTypes.object, function (props) {\n if (props.classes && props.classes.container) {\n throw new Error(['Material-UI: the classes.container key is deprecated.', 'Use `classes.root` instead', 'The name of the pseudo-class was changed for consistency.'].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The height of the container when collapsed.\n * @deprecated The prop was renamed to support the addition of horizontal orientation, use `collapsedSize` instead.\n */\n collapsedHeight: deprecatedPropType(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), 'The prop was renamed to support the vertical orientation, use `collapsedSize` instead'),\n\n /**\n * The height of the container when collapsed.\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the passed `Component`.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nCollapse.muiSupportAuto = true;\nexport default withStyles(styles, {\n name: 'MuiCollapse'\n})(Collapse);","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 { Button, ListItem } from '@material-ui/core';\nimport React from 'react';\nimport { WalletIcon } from './WalletIcon';\nexport const WalletListItem = (_a) => {\n var { onClick, wallet } = _a, props = __rest(_a, [\"onClick\", \"wallet\"]);\n return (React.createElement(ListItem, Object.assign({}, props),\n React.createElement(Button, { onClick: onClick, endIcon: React.createElement(WalletIcon, { wallet: wallet }) }, wallet.name)));\n};\n//# sourceMappingURL=WalletListItem.js.map","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 { Button, Collapse, Dialog, DialogContent, DialogTitle, IconButton, List, ListItem, makeStyles, } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport ExpandLess from '@material-ui/icons/ExpandLess';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport { useWallet } from '@solana/wallet-adapter-react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useWalletDialog } from './useWalletDialog';\nimport { WalletListItem } from './WalletListItem';\nconst useStyles = makeStyles((theme) => ({\n root: {\n '& .MuiDialog-paper': {\n width: theme.spacing(40),\n margin: 0,\n },\n '& .MuiDialogTitle-root': {\n backgroundColor: theme.palette.primary.main,\n '& .MuiTypography-root': {\n display: 'flex',\n justifyContent: 'space-between',\n lineHeight: theme.spacing(5) + 'px',\n },\n '& .MuiIconButton-root': {\n flexShrink: 1,\n padding: theme.spacing(),\n marginRight: theme.spacing(-1),\n color: theme.palette.grey[500],\n },\n },\n '& .MuiDialogContent-root': {\n padding: 0,\n '& .MuiCollapse-root': {\n '& .MuiList-root': {\n background: theme.palette.grey[900],\n },\n },\n '& .MuiList-root': {\n background: theme.palette.grey[900],\n padding: 0,\n },\n '& .MuiListItem-root': {\n boxShadow: 'inset 0 1px 0 0 ' + 'rgba(255, 255, 255, 0.1)',\n '&:hover': {\n boxShadow: 'inset 0 1px 0 0 ' + 'rgba(255, 255, 255, 0.1)' + ', 0 1px 0 0 ' + 'rgba(255, 255, 255, 0.05)',\n },\n padding: 0,\n '& .MuiButton-endIcon': {\n margin: 0,\n },\n '& .MuiButton-root': {\n flexGrow: 1,\n justifyContent: 'space-between',\n padding: theme.spacing(1, 3),\n borderRadius: undefined,\n fontSize: '1rem',\n fontWeight: 400,\n },\n '& .MuiSvgIcon-root': {\n color: theme.palette.grey[500],\n },\n },\n },\n },\n}));\nexport const WalletDialog = (_a) => {\n var { title = 'Select your wallet', featuredWallets = 3, onClose } = _a, props = __rest(_a, [\"title\", \"featuredWallets\", \"onClose\"]);\n const styles = useStyles();\n const { wallets, select } = useWallet();\n const { open, setOpen } = useWalletDialog();\n const [expanded, setExpanded] = useState(false);\n const [featured, more] = useMemo(() => [wallets.slice(0, featuredWallets), wallets.slice(featuredWallets)], [wallets, featuredWallets]);\n const handleClose = useCallback((event, reason) => {\n if (onClose)\n onClose(event, reason);\n if (!event.defaultPrevented)\n setOpen(false);\n }, [setOpen, onClose]);\n const handleWalletClick = useCallback((event, walletName) => {\n select(walletName);\n handleClose(event);\n }, [select, handleClose]);\n const handleExpandClick = useCallback(() => setExpanded(!expanded), [setExpanded, expanded]);\n return (React.createElement(Dialog, Object.assign({ open: open, onClose: handleClose, className: styles.root }, props),\n React.createElement(DialogTitle, null,\n title,\n React.createElement(IconButton, { onClick: handleClose },\n React.createElement(CloseIcon, null))),\n React.createElement(DialogContent, null,\n React.createElement(List, null,\n featured.map((wallet) => (React.createElement(WalletListItem, { key: wallet.name, onClick: (event) => handleWalletClick(event, wallet.name), wallet: wallet }))),\n more.length ? (React.createElement(React.Fragment, null,\n React.createElement(Collapse, { in: expanded, timeout: \"auto\", unmountOnExit: true },\n React.createElement(List, null, more.map((wallet) => (React.createElement(WalletListItem, { key: wallet.name, onClick: (event) => handleWalletClick(event, wallet.name), wallet: wallet }))))),\n React.createElement(ListItem, null,\n React.createElement(Button, { onClick: handleExpandClick },\n expanded ? 'Less' : 'More',\n \" options\",\n expanded ? React.createElement(ExpandLess, null) : React.createElement(ExpandMore, null))))) : null))));\n};\n//# sourceMappingURL=WalletDialog.js.map","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 { Button } from '@material-ui/core';\nimport React, { useCallback } from 'react';\nimport { useWalletDialog } from './useWalletDialog';\nexport const WalletDialogButton = (_a) => {\n var { children = 'Select Wallet', color = 'primary', variant = 'contained', type = 'button', onClick } = _a, props = __rest(_a, [\"children\", \"color\", \"variant\", \"type\", \"onClick\"]);\n const { setOpen } = useWalletDialog();\n const handleClick = useCallback((event) => {\n if (onClick)\n onClick(event);\n if (!event.defaultPrevented)\n setOpen(true);\n }, [onClick, setOpen]);\n return (React.createElement(Button, Object.assign({ color: color, variant: variant, type: type, onClick: handleClick }, props), children));\n};\n//# sourceMappingURL=WalletDialogButton.js.map","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 React, { useState } from 'react';\nimport { WalletDialogContext } from './useWalletDialog';\nimport { WalletDialog } from './WalletDialog';\nexport const WalletDialogProvider = (_a) => {\n var { children } = _a, props = __rest(_a, [\"children\"]);\n const [open, setOpen] = useState(false);\n return (React.createElement(WalletDialogContext.Provider, { value: {\n open,\n setOpen,\n } },\n children,\n React.createElement(WalletDialog, Object.assign({}, props))));\n};\n//# sourceMappingURL=WalletDialogProvider.js.map","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\n\nfunction getScale(value) {\n return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n var children = props.children,\n _props$disableStrictM = props.disableStrictModeCompat,\n disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var timer = React.useRef();\n var autoTimeout = React.useRef();\n var theme = useTheme();\n var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n var nodeRef = React.useRef(null);\n var foreignRef = useForkRef(children.ref, ref);\n var handleRef = useForkRef(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (nodeOrAppearing, maybeAppearing) {\n if (callback) {\n var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n _ref2 = _slicedToArray(_ref, 2),\n node = _ref2[0],\n isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n if (isAppearing === undefined) {\n callback(node);\n } else {\n callback(node, isAppearing);\n }\n }\n };\n };\n\n var handleEntering = normalizedTransitionCallback(onEntering);\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n reflow(node); // So the animation always start from the start.\n\n var _getTransitionProps = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'enter'\n }),\n transitionDuration = _getTransitionProps.duration,\n delay = _getTransitionProps.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay\n })].join(',');\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var _getTransitionProps2 = getTransitionProps({\n style: style,\n timeout: timeout\n }, {\n mode: 'exit'\n }),\n transitionDuration = _getTransitionProps2.duration,\n delay = _getTransitionProps2.delay;\n\n var duration;\n\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n\n node.style.transition = [theme.transitions.create('opacity', {\n duration: duration,\n delay: delay\n }), theme.transitions.create('transform', {\n duration: duration * 0.666,\n delay: delay || duration * 0.333\n })].join(',');\n node.style.opacity = '0';\n node.style.transform = getScale(0.75);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(onExited);\n\n var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n };\n\n React.useEffect(function () {\n return function () {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: addEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: PropTypes.element,\n\n /**\n * Enable this prop if you encounter 'Function components cannot be given refs',\n * use `unstable_createStrictModeTheme`,\n * and can't forward the ref in the child component.\n */\n disableStrictModeCompat: PropTypes.bool,\n\n /**\n * If `true`, show the component; triggers the enter or exit animation.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport { chainPropTypes, elementTypeAcceptingRef, refType, HTMLElementType } from '@material-ui/utils';\nimport debounce from '../utils/debounce';\nimport clsx from 'clsx';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport Modal from '../Modal';\nimport Grow from '../Grow';\nimport Paper from '../Paper';\nexport function getOffsetTop(rect, vertical) {\n var offset = 0;\n\n if (typeof vertical === 'number') {\n offset = vertical;\n } else if (vertical === 'center') {\n offset = rect.height / 2;\n } else if (vertical === 'bottom') {\n offset = rect.height;\n }\n\n return offset;\n}\nexport function getOffsetLeft(rect, horizontal) {\n var offset = 0;\n\n if (typeof horizontal === 'number') {\n offset = horizontal;\n } else if (horizontal === 'center') {\n offset = rect.width / 2;\n } else if (horizontal === 'right') {\n offset = rect.width;\n }\n\n return offset;\n}\n\nfunction getTransformOriginValue(transformOrigin) {\n return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {\n return typeof n === 'number' ? \"\".concat(n, \"px\") : n;\n }).join(' ');\n} // Sum the scrollTop between two elements.\n\n\nfunction getScrollParent(parent, child) {\n var element = child;\n var scrollTop = 0;\n\n while (element && element !== parent) {\n element = element.parentElement;\n scrollTop += element.scrollTop;\n }\n\n return scrollTop;\n}\n\nfunction getAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nexport var styles = {\n /* Styles applied to the root element. */\n root: {},\n\n /* Styles applied to the `Paper` component. */\n paper: {\n position: 'absolute',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n // It's most likely on issue on userland.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n }\n};\nvar Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {\n var action = props.action,\n anchorEl = props.anchorEl,\n _props$anchorOrigin = props.anchorOrigin,\n anchorOrigin = _props$anchorOrigin === void 0 ? {\n vertical: 'top',\n horizontal: 'left'\n } : _props$anchorOrigin,\n anchorPosition = props.anchorPosition,\n _props$anchorReferenc = props.anchorReference,\n anchorReference = _props$anchorReferenc === void 0 ? 'anchorEl' : _props$anchorReferenc,\n children = props.children,\n classes = props.classes,\n className = props.className,\n containerProp = props.container,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 8 : _props$elevation,\n getContentAnchorEl = props.getContentAnchorEl,\n _props$marginThreshol = props.marginThreshold,\n marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n open = props.open,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n _props$transformOrigi = props.transformOrigin,\n transformOrigin = _props$transformOrigi === void 0 ? {\n vertical: 'top',\n horizontal: 'left'\n } : _props$transformOrigi,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Grow : _props$TransitionComp,\n _props$transitionDura = props.transitionDuration,\n transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n _props$TransitionProp = props.TransitionProps,\n TransitionProps = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,\n other = _objectWithoutProperties(props, [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"classes\", \"className\", \"container\", \"elevation\", \"getContentAnchorEl\", \"marginThreshold\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperProps\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n var paperRef = React.useRef(); // Returns the top/left offset of the position\n // to attach to on the anchor element (or body if none is provided)\n\n var getAnchorOffset = React.useCallback(function (contentAnchorOffset) {\n if (anchorReference === 'anchorPosition') {\n if (process.env.NODE_ENV !== 'production') {\n if (!anchorPosition) {\n console.error('Material-UI: You need to provide a `anchorPosition` prop when using ' + '.');\n }\n }\n\n return anchorPosition;\n }\n\n var resolvedAnchorEl = getAnchorEl(anchorEl); // If an anchor element wasn't provided, just use the parent body element of this Popover\n\n var anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument(paperRef.current).body;\n var anchorRect = anchorElement.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'production') {\n var box = anchorElement.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n\n var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';\n return {\n top: anchorRect.top + getOffsetTop(anchorRect, anchorVertical),\n left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n };\n }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]); // Returns the vertical offset of inner content to anchor the transform on if provided\n\n var getContentAnchorOffset = React.useCallback(function (element) {\n var contentAnchorOffset = 0;\n\n if (getContentAnchorEl && anchorReference === 'anchorEl') {\n var contentAnchorEl = getContentAnchorEl(element);\n\n if (contentAnchorEl && element.contains(contentAnchorEl)) {\n var scrollTop = getScrollParent(element, contentAnchorEl);\n contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;\n } // != the default value\n\n\n if (process.env.NODE_ENV !== 'production') {\n if (anchorOrigin.vertical !== 'top') {\n console.error(['Material-UI: You can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` prop to the popover component.', 'Only use one of the two props.', 'Set `getContentAnchorEl` to `null | undefined`' + ' or leave `anchorOrigin.vertical` unchanged.'].join('\\n'));\n }\n }\n }\n\n return contentAnchorOffset;\n }, [anchorOrigin.vertical, anchorReference, getContentAnchorEl]); // Return the base transform origin using the element\n // and taking the content anchor offset into account if in use\n\n var getTransformOrigin = React.useCallback(function (elemRect) {\n var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return {\n vertical: getOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,\n horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n };\n }, [transformOrigin.horizontal, transformOrigin.vertical]);\n var getPositioningStyle = React.useCallback(function (element) {\n // Check if the parent has requested anchoring on an inner content node\n var contentAnchorOffset = getContentAnchorOffset(element);\n var elemRect = {\n width: element.offsetWidth,\n height: element.offsetHeight\n }; // Get the transform origin point on the element itself\n\n var elemTransformOrigin = getTransformOrigin(elemRect, contentAnchorOffset);\n\n if (anchorReference === 'none') {\n return {\n top: null,\n left: null,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n } // Get the offset of of the anchoring element\n\n\n var anchorOffset = getAnchorOffset(contentAnchorOffset); // Calculate element positioning\n\n var top = anchorOffset.top - elemTransformOrigin.vertical;\n var left = anchorOffset.left - elemTransformOrigin.horizontal;\n var bottom = top + elemRect.height;\n var right = left + elemRect.width; // Use the parent window of the anchorEl if provided\n\n var containerWindow = ownerWindow(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account\n\n var heightThreshold = containerWindow.innerHeight - marginThreshold;\n var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting\n\n if (top < marginThreshold) {\n var diff = top - marginThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n } else if (bottom > heightThreshold) {\n var _diff = bottom - heightThreshold;\n\n top -= _diff;\n elemTransformOrigin.vertical += _diff;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n console.error(['Material-UI: The popover component is too tall.', \"Some part of it can not be seen on the screen (\".concat(elemRect.height - heightThreshold, \"px).\"), 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n }\n } // Check if the horizontal axis needs shifting\n\n\n if (left < marginThreshold) {\n var _diff2 = left - marginThreshold;\n\n left -= _diff2;\n elemTransformOrigin.horizontal += _diff2;\n } else if (right > widthThreshold) {\n var _diff3 = right - widthThreshold;\n\n left -= _diff3;\n elemTransformOrigin.horizontal += _diff3;\n }\n\n return {\n top: \"\".concat(Math.round(top), \"px\"),\n left: \"\".concat(Math.round(left), \"px\"),\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }, [anchorEl, anchorReference, getAnchorOffset, getContentAnchorOffset, getTransformOrigin, marginThreshold]);\n var setPositioningStyles = React.useCallback(function () {\n var element = paperRef.current;\n\n if (!element) {\n return;\n }\n\n var positioning = getPositioningStyle(element);\n\n if (positioning.top !== null) {\n element.style.top = positioning.top;\n }\n\n if (positioning.left !== null) {\n element.style.left = positioning.left;\n }\n\n element.style.transformOrigin = positioning.transformOrigin;\n }, [getPositioningStyle]);\n\n var handleEntering = function handleEntering(element, isAppearing) {\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n\n setPositioningStyles();\n };\n\n var handlePaperRef = React.useCallback(function (instance) {\n // #StrictMode ready\n paperRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n React.useEffect(function () {\n if (open) {\n setPositioningStyles();\n }\n });\n React.useImperativeHandle(action, function () {\n return open ? {\n updatePosition: function updatePosition() {\n setPositioningStyles();\n }\n } : null;\n }, [open, setPositioningStyles]);\n React.useEffect(function () {\n if (!open) {\n return undefined;\n }\n\n var handleResize = debounce(function () {\n setPositioningStyles();\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [open, setPositioningStyles]);\n var transitionDuration = transitionDurationProp;\n\n if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n transitionDuration = undefined;\n } // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n\n\n var container = containerProp || (anchorEl ? ownerDocument(getAnchorEl(anchorEl)).body : undefined);\n return /*#__PURE__*/React.createElement(Modal, _extends({\n container: container,\n open: open,\n ref: ref,\n BackdropProps: {\n invisible: true\n },\n className: clsx(classes.root, className)\n }, other), /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n appear: true,\n in: open,\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: onExit,\n onExited: onExited,\n onExiting: onExiting,\n timeout: transitionDuration\n }, TransitionProps, {\n onEntering: createChainedFunction(handleEntering, TransitionProps.onEntering)\n }), /*#__PURE__*/React.createElement(Paper, _extends({\n elevation: elevation,\n ref: handlePaperRef\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className)\n }), children)));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popover.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A ref for imperative actions.\n * It currently only supports updatePosition() action.\n */\n action: refType,\n\n /**\n * A HTML element, or a function that returns it.\n * It's used to set the position of the popover.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), function (props) {\n if (props.open && (!props.anchorReference || props.anchorReference === 'anchorEl')) {\n var resolvedAnchorEl = getAnchorEl(props.anchorEl);\n\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n var box = resolvedAnchorEl.getBoundingClientRect();\n\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else {\n return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', \"It should be an Element instance but it's `\".concat(resolvedAnchorEl, \"` instead.\")].join('\\n'));\n }\n }\n\n return null;\n }),\n\n /**\n * This is the point on the anchor where the popover's\n * `anchorEl` will attach to. This is not used when the\n * anchorReference is 'anchorPosition'.\n *\n * Options:\n * vertical: [top, center, bottom];\n * horizontal: [left, center, right].\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n\n /**\n * This is the position that may be used\n * to set the position of the popover.\n * The coordinates are relative to\n * the application's client area.\n */\n anchorPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired\n }),\n\n /**\n * This determines which anchor prop to refer to to set\n * the position of the popover.\n */\n anchorReference: PropTypes.oneOf(['anchorEl', 'anchorPosition', 'none']),\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * A HTML element, component instance, or function that returns either.\n * The `container` will passed to the Modal component.\n *\n * By default, it uses the body of the anchorEl's top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.instanceOf(React.Component), PropTypes.func]),\n\n /**\n * The elevation of the popover.\n */\n elevation: PropTypes.number,\n\n /**\n * This function is called in order to retrieve the content anchor element.\n * It's the opposite of the `anchorEl` prop.\n * The content anchor element should be an element inside the popover.\n * It's used to correctly scroll and set the position of the popover.\n * The positioning strategy tries to make the content anchor element just above the\n * anchor element.\n */\n getContentAnchorEl: PropTypes.func,\n\n /**\n * Specifies how close to the edge of the window the popover can appear.\n */\n marginThreshold: PropTypes.number,\n\n /**\n * Callback fired when the component requests to be closed.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the component is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEnter: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the component has entered.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntered: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the component is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntering: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired before the component is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExit: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the component has exited.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExited: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the component is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExiting: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * If `true`, the popover is visible.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * Props applied to the [`Paper`](/api/paper/) element.\n */\n PaperProps: PropTypes\n /* @typescript-to-proptypes-ignore */\n .shape({\n component: elementTypeAcceptingRef\n }),\n\n /**\n * This is the point on the popover which\n * will attach to the anchor's origin.\n *\n * Options:\n * vertical: [top, center, bottom, x(px)];\n * horizontal: [left, center, right, x(px)].\n */\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * Set to 'auto' to automatically calculate transition time based on height.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPopover'\n})(Popover);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\n\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n\n return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n\n return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n\n var text = nextFocus.innerText;\n\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n\n text = text.trim().toLowerCase();\n\n if (text.length === 0) {\n return false;\n }\n\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n var wrappedOnce = false;\n var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return;\n }\n\n wrappedOnce = true;\n } // Same logic as useAutocomplete.js\n\n\n var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return;\n }\n }\n}\n\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\nvar MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n var actions = props.actions,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n _props$autoFocusItem = props.autoFocusItem,\n autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,\n children = props.children,\n className = props.className,\n _props$disabledItemsF = props.disabledItemsFocusable,\n disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,\n _props$disableListWra = props.disableListWrap,\n disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,\n onKeyDown = props.onKeyDown,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n other = _objectWithoutProperties(props, [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"]);\n\n var listRef = React.useRef(null);\n var textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(function () {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, function () {\n return {\n adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n var noExplicitWidth = !listRef.current.style.width;\n\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n var scrollbarSize = \"\".concat(getScrollbarSize(true), \"px\");\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = \"calc(100% + \".concat(scrollbarSize, \")\");\n }\n\n return listRef.current;\n }\n };\n }, []);\n\n var handleKeyDown = function handleKeyDown(event) {\n var list = listRef.current;\n var key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n\n var currentFocus = ownerDocument(list).activeElement;\n\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n var criteria = textCriteriaRef.current;\n var lowerKey = key.toLowerCase();\n var currTime = performance.now();\n\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n listRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRef = useForkRef(handleOwnRef, ref);\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.forEach(children, function (child, index) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n var items = React.Children.map(children, function (child, index) {\n if (index === activeItemIndex) {\n var newChildProps = {};\n\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n\n return child;\n });\n return /*#__PURE__*/React.createElement(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other), items);\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n */\n autoFocusItem: PropTypes.bool,\n\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, will allow focus on disabled items.\n */\n disabledItemsFocusable: PropTypes.bool,\n\n /**\n * If `true`, the menu items will not wrap focus.\n */\n disableListWrap: PropTypes.bool,\n\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { HTMLElementType } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport Popover from '../Popover';\nimport MenuList from '../MenuList';\nimport * as ReactDOM from 'react-dom';\nimport setRef from '../utils/setRef';\nimport useTheme from '../styles/useTheme';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nvar RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nvar LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nexport var styles = {\n /* Styles applied to the `Paper` component. */\n paper: {\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tapable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling.\n WebkitOverflowScrolling: 'touch'\n },\n\n /* Styles applied to the `List` component via `MenuList`. */\n list: {\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n }\n};\nvar Menu = /*#__PURE__*/React.forwardRef(function Menu(props, ref) {\n var _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n children = props.children,\n classes = props.classes,\n _props$disableAutoFoc = props.disableAutoFocusItem,\n disableAutoFocusItem = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n _props$MenuListProps = props.MenuListProps,\n MenuListProps = _props$MenuListProps === void 0 ? {} : _props$MenuListProps,\n onClose = props.onClose,\n onEnteringProp = props.onEntering,\n open = props.open,\n _props$PaperProps = props.PaperProps,\n PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n PopoverClasses = props.PopoverClasses,\n _props$transitionDura = props.transitionDuration,\n transitionDuration = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n _props$TransitionProp = props.TransitionProps;\n _props$TransitionProp = _props$TransitionProp === void 0 ? {} : _props$TransitionProp;\n\n var onEntering = _props$TransitionProp.onEntering,\n TransitionProps = _objectWithoutProperties(_props$TransitionProp, [\"onEntering\"]),\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n other = _objectWithoutProperties(props, [\"autoFocus\", \"children\", \"classes\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"onEntering\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"TransitionProps\", \"variant\"]);\n\n var theme = useTheme();\n var autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n var menuListActionsRef = React.useRef(null);\n var contentAnchorRef = React.useRef(null);\n\n var getContentAnchorEl = function getContentAnchorEl() {\n return contentAnchorRef.current;\n };\n\n var handleEntering = function handleEntering(element, isAppearing) {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n }\n\n if (onEnteringProp) {\n onEnteringProp(element, isAppearing);\n }\n\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n\n var handleListKeyDown = function handleListKeyDown(event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n\n\n var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n\n React.Children.map(children, function (child, index) {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n if (!child.props.disabled) {\n if (variant !== \"menu\" && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n var items = React.Children.map(children, function (child, index) {\n if (index === activeItemIndex) {\n return /*#__PURE__*/React.cloneElement(child, {\n ref: function ref(instance) {\n // #StrictMode ready\n contentAnchorRef.current = ReactDOM.findDOMNode(instance);\n setRef(child.ref, instance);\n }\n });\n }\n\n return child;\n });\n return /*#__PURE__*/React.createElement(Popover, _extends({\n getContentAnchorEl: getContentAnchorEl,\n classes: PopoverClasses,\n onClose: onClose,\n TransitionProps: _extends({\n onEntering: handleEntering\n }, TransitionProps),\n anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n PaperProps: _extends({}, PaperProps, {\n classes: _extends({}, PaperProps.classes, {\n root: classes.paper\n })\n }),\n open: open,\n ref: ref,\n transitionDuration: transitionDuration\n }, other), /*#__PURE__*/React.createElement(MenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className)\n }), items));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A HTML element, or a function that returns it.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([HTMLElementType, PropTypes.func]),\n\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Menu contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n */\n disableAutoFocusItem: PropTypes.bool,\n\n /**\n * Props applied to the [`MenuList`](/api/menu-list/) element.\n */\n MenuListProps: PropTypes.object,\n\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired before the Menu enters.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEnter: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the Menu has entered.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntered: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the Menu is entering.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onEntering: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired before the Menu exits.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExit: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the Menu has exited.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExited: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * Callback fired when the Menu is exiting.\n * @deprecated Use the `TransitionProps` prop instead.\n */\n onExiting: deprecatedPropType(PropTypes.func, 'Use the `TransitionProps` prop instead.'),\n\n /**\n * If `true`, the menu is visible.\n */\n open: PropTypes.bool.isRequired,\n\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n\n /**\n * `classes` prop applied to the [`Popover`](/api/popover/) element.\n */\n PopoverClasses: PropTypes.object,\n\n /**\n * The length of the transition in `ms`, or 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition) component.\n */\n TransitionProps: PropTypes.object,\n\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiMenu'\n})(Menu);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ListContext from '../List/ListContext';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n minWidth: 56,\n color: theme.palette.action.active,\n flexShrink: 0,\n display: 'inline-flex'\n },\n\n /* Styles applied to the root element when the parent `ListItem` uses `alignItems=\"flex-start\"`. */\n alignItemsFlexStart: {\n marginTop: 8\n }\n };\n};\n/**\n * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.\n */\n\nvar ListItemIcon = /*#__PURE__*/React.forwardRef(function ListItemIcon(props, ref) {\n var classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"classes\", \"className\"]);\n\n var context = React.useContext(ListContext);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, context.alignItems === 'flex-start' && classes.alignItemsFlexStart),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `Icon`, `SvgIcon`,\n * or a `@material-ui/icons` SVG icon element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiListItemIcon'\n})(ListItemIcon);","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Button, Collapse, Fade, ListItemIcon, makeStyles, Menu, MenuItem, } from '@material-ui/core';\nimport CopyIcon from '@material-ui/icons/FileCopy';\nimport DisconnectIcon from '@material-ui/icons/LinkOff';\nimport SwitchIcon from '@material-ui/icons/SwapHoriz';\nimport { useWallet } from '@solana/wallet-adapter-react';\nimport React, { useMemo, useState } from 'react';\nimport { useWalletDialog } from './useWalletDialog';\nimport { WalletConnectButton } from './WalletConnectButton';\nimport { WalletDialogButton } from './WalletDialogButton';\nimport { WalletIcon } from './WalletIcon';\nconst useStyles = makeStyles((theme) => ({\n root: {},\n menu: {\n '& .MuiList-root': {\n padding: 0,\n },\n '& .MuiMenuItem-root': {\n padding: theme.spacing(1, 2),\n boxShadow: 'inset 0 1px 0 0 ' + 'rgba(255, 255, 255, 0.1)',\n '&:not(.MuiButtonBase-root)': {\n padding: 0,\n '& .MuiButton-root': {\n borderRadius: 0,\n },\n },\n '&:hover': {\n boxShadow: 'inset 0 1px 0 0 ' + 'rgba(255, 255, 255, 0.1)' + ', 0 1px 0 0 ' + 'rgba(255, 255, 255, 0.05)',\n },\n },\n '& .MuiListItemIcon-root': {\n marginRight: theme.spacing(),\n minWidth: 'unset',\n '& .MuiSvgIcon-root': {\n width: 20,\n height: 20,\n },\n },\n },\n}));\nexport const WalletMultiButton = (_a) => {\n var { color = 'primary', variant = 'contained', type = 'button', children } = _a, props = __rest(_a, [\"color\", \"variant\", \"type\", \"children\"]);\n const styles = useStyles();\n const { publicKey, wallet, disconnect } = useWallet();\n const { setOpen } = useWalletDialog();\n const [anchor, setAnchor] = useState();\n const base58 = useMemo(() => publicKey === null || publicKey === void 0 ? void 0 : publicKey.toBase58(), [publicKey]);\n const content = useMemo(() => {\n if (children)\n return children;\n if (!wallet || !base58)\n return null;\n return base58.slice(0, 4) + '..' + base58.slice(-4);\n }, [children, wallet, base58]);\n if (!wallet) {\n return (React.createElement(WalletDialogButton, Object.assign({ color: color, variant: variant, type: type }, props), children));\n }\n if (!base58) {\n return (React.createElement(WalletConnectButton, Object.assign({ color: color, variant: variant, type: type }, props), children));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Button, Object.assign({ color: color, variant: variant, type: type, startIcon: React.createElement(WalletIcon, { wallet: wallet }), onClick: (event) => setAnchor(event.currentTarget), \"aria-controls\": \"wallet-menu\", \"aria-haspopup\": \"true\", className: styles.root }, props), content),\n React.createElement(Menu, { id: \"wallet-menu\", anchorEl: anchor, open: !!anchor, onClose: () => setAnchor(undefined), className: styles.menu, marginThreshold: 0, TransitionComponent: Fade, transitionDuration: 250, keepMounted: true },\n React.createElement(MenuItem, { onClick: () => setAnchor(undefined), button: false },\n React.createElement(Button, Object.assign({ color: color, variant: variant, type: type, startIcon: React.createElement(WalletIcon, { wallet: wallet }), className: styles.root, onClick: (event) => setAnchor(undefined), fullWidth: true }, props), wallet.name)),\n React.createElement(Collapse, { in: !!anchor },\n React.createElement(MenuItem, { onClick: () => __awaiter(void 0, void 0, void 0, function* () {\n setAnchor(undefined);\n yield navigator.clipboard.writeText(base58);\n }) },\n React.createElement(ListItemIcon, null,\n React.createElement(CopyIcon, null)),\n \"Copy address\"),\n React.createElement(MenuItem, { onClick: () => {\n setAnchor(undefined);\n setOpen(true);\n } },\n React.createElement(ListItemIcon, null,\n React.createElement(SwitchIcon, null)),\n \"Connect a different wallet\"),\n React.createElement(MenuItem, { onClick: () => {\n setAnchor(undefined);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n disconnect().catch(() => {\n // Silently catch because any errors are caught by the context `onError` handler\n });\n } },\n React.createElement(ListItemIcon, null,\n React.createElement(DisconnectIcon, null)),\n \"Disconnect\")))));\n};\n//# sourceMappingURL=WalletMultiButton.js.map","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _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}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\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 !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\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: PART_TYPE.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: PART_TYPE.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: PART_TYPE.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 MissingValueError(varName, 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: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\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'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.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 ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.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 ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\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[\"=\".concat(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\", ErrorCode.MISSING_INTL_API, originalMessage);\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 InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\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}\n","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\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\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Enum = exports.Assignable = exports.SCHEMA = void 0;\nconst borsh_1 = require(\"borsh\");\nexports.SCHEMA = new Map();\n// Class wrapping a plain object\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).forEach((key) => {\n // this is probably possible in Typescript,\n // but requires (keyof this) which is not possible in the the constructor\n // @ts-ignore\n this[key] = properties[key];\n });\n }\n encode() {\n return Buffer.from((0, borsh_1.serialize)(exports.SCHEMA, this));\n }\n static decode(data) {\n return (0, borsh_1.deserialize)(exports.SCHEMA, this, data);\n }\n}\nexports.Assignable = Assignable;\n// Class representing a Rust-compatible enum, since enums are only strings or\n// numbers in pure JS\nclass Enum extends Assignable {\n constructor(properties) {\n super(properties);\n if (Object.keys(properties).length !== 1) {\n throw new Error(\"Enum can only take single value\");\n }\n this.enum = \"\";\n Object.keys(properties).forEach((key) => {\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\n//# sourceMappingURL=solanaBorsh.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SOLANA_TIMEOUT_FINALIZED = exports.SOLANA_TIMEOUT_CONFIRMED = exports.SOLANA_TIMEOUT_PROCESSED = exports.DEFAULT_SOLANA_RETRIES = exports.SOLANA_COMMITMENT = exports.GATEWAY_TOKEN_ADDRESS_SEED = exports.GATEKEEPER_NONCE_SEED_STRING = exports.PROGRAM_ID = void 0;\nconst web3_js_1 = require(\"@solana/web3.js\");\n// Should equal the contents of solana/program/program-id.md\nexports.PROGRAM_ID = new web3_js_1.PublicKey(\"gatem74V238djXdzWnJf94Wo1DcnuGkfijbf3AuBhfs\");\nexports.GATEKEEPER_NONCE_SEED_STRING = \"gatekeeper\"; // must match get_inbox_address_with_seed in state.rs\nexports.GATEWAY_TOKEN_ADDRESS_SEED = \"gateway\"; // must match get_inbox_address_with_seed in state.rs\nexports.SOLANA_COMMITMENT = \"confirmed\";\nexports.DEFAULT_SOLANA_RETRIES = 3;\n// Timeouts vary depending on the commitment.\nexports.SOLANA_TIMEOUT_PROCESSED = 3000;\nexports.SOLANA_TIMEOUT_CONFIRMED = 7000;\nexports.SOLANA_TIMEOUT_FINALIZED = 10000;\n//# sourceMappingURL=constants.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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useGateway = exports.GatewayProvider = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst iframe_resizer_react_1 = __importDefault(require(\"iframe-resizer-react\"));\nconst types_1 = require(\"../types\");\nconst logger_1 = __importDefault(require(\"../logger\"));\nconst Wrapper_1 = require(\"../wrapper/Wrapper\");\nconst constants_1 = require(\"../constants\");\nconst config_1 = require(\"../config\");\nconst config_2 = require(\"../solana/config\");\nconst gatekeeperClient_1 = __importDefault(require(\"../utils/gatekeeperClient\"));\nconst useReducer_1 = __importDefault(require(\"../useReducer\"));\nconst useUserInteraction_1 = __importDefault(require(\"../useHooks/useUserInteraction\"));\nconst useOrchestration_1 = __importDefault(require(\"../useHooks/useOrchestration\"));\nconst useWalletHooks_1 = __importDefault(require(\"../useHooks/useWalletHooks\"));\nconst GatewayContext = react_1.default.createContext({\n requestGatewayToken: async () => { },\n gatewayStatus: types_1.GatewayStatus.NOT_REQUESTED,\n stage: config_1.DEFAULT_GATEKEEPER_STAGE,\n});\nconst redirectUrlFromWindow = () => encodeURIComponent(window.location.href.split('?')[0]);\nconst GatewayProvider = ({ children = null, wallet, chainImplementation, wrapper, logo, stage = 'prod', redirectUrl, gatekeeperNetwork, options = { autoShowModal: true }, ownerSigns, }) => {\n const gatekeeperNetworkAddress = gatekeeperNetwork;\n const [state, dispatch] = (0, react_1.useReducer)(useReducer_1.default, {\n options,\n gatewayStatus: types_1.GatewayStatus.UNKNOWN,\n tokenRequested: false,\n iframeMinimized: false,\n firstTokenCheck: true,\n renderIframe: false,\n powoFinished: false,\n refreshInProgress: false,\n walletPowoInProgress: false,\n walletAddress: wallet === null || wallet === void 0 ? void 0 : wallet.publicKey,\n iframeSrcUrl: undefined,\n stage,\n redirectUrl: redirectUrl || redirectUrlFromWindow(),\n tokenIssuanceState: types_1.TokenIssuanceState.NOT_REQUESTED,\n refreshTokenState: types_1.RefreshTokenState.NOT_REQUIRED,\n civicPass: {\n status: types_1.CivicPassIssuanceStatus.NOT_REQUESTED,\n iframeMinimized: false,\n renderIframe: false,\n },\n gatekeeperNetworkAddress,\n chainType: chainImplementation.chainType,\n ownerSigns,\n });\n const { gatewayStatus, iframeMinimized, renderIframe, gatewayToken, iframeSrcUrl, gatewayTokenTransaction } = state;\n (0, useWalletHooks_1.default)(wallet, state, dispatch); // need to handle wallet connect and disconnect first\n // ensure the state is updated with any changes to input props\n (0, react_1.useEffect)(() => {\n dispatch({\n type: 'updateStateWithProps',\n redirectUrl: redirectUrl || redirectUrlFromWindow(),\n stage,\n walletAddress: wallet === null || wallet === void 0 ? void 0 : wallet.publicKey,\n gatekeeperNetworkAddress,\n });\n }, [redirectUrl, stage, wallet, gatekeeperNetworkAddress]);\n const clusterName = chainImplementation.httpConfig.queryParams.network;\n const gatekeeperEndpoint = (0, config_2.getGatekeeperEndpoint)(stage);\n const gatekeeperClient = (0, react_1.useCallback)(() => {\n if (!gatekeeperNetworkAddress) {\n throw new Error('No gatekeeper network passed in.');\n }\n return new gatekeeperClient_1.default({\n baseUrl: gatekeeperEndpoint,\n stage,\n queryParams: { network: clusterName, gatekeeperNetworkAddress },\n });\n }, [stage, gatekeeperEndpoint, gatekeeperNetworkAddress, clusterName]);\n // this hook implements the main business logic and handles requesting and refreshing gateway tokens\n (0, useOrchestration_1.default)({ wallet, chainImplementation, stage, gatekeeperClient }, state, dispatch);\n // requestGatewayToken is the only user-triggered event handled by the component\n // the compliance iframe user interaction is handled using events triggered from the iframe\n const { requestGatewayToken } = (0, useUserInteraction_1.default)({ wallet }, state, dispatch);\n const civicPassSrcUrl = (0, config_1.getCivicPassEndpoint)(stage);\n /**\n * manage local state for display of the close button ui relative to iframe loading\n */\n const [iframeLoaded, setIframeLoaded] = (0, react_1.useState)(false);\n (0, react_1.useEffect)(() => {\n logger_1.default.info('GatewayContext gatewayStatus', types_1.GatewayStatus[gatewayStatus]);\n }, [gatewayStatus]);\n /**\n * Reset the iFrame when removing the iFrame from the DOM\n */\n (0, react_1.useEffect)(() => {\n if (!renderIframe) {\n setIframeLoaded(false);\n }\n }, [renderIframe]);\n return (react_1.default.createElement(GatewayContext.Provider, { value: {\n requestGatewayToken,\n gatewayStatus,\n gatewayToken: gatewayStatus === types_1.GatewayStatus.ACTIVE ? gatewayToken : undefined,\n stage,\n civicPassSrcUrl,\n gatewayTokenTransaction,\n } },\n children,\n renderIframe && (react_1.default.createElement(\"div\", { \"data-testid\": constants_1.TESTID_WRAPPER_CONTAINER, hidden: iframeMinimized },\n react_1.default.createElement(Wrapper_1.Wrapper, { \"data-testid\": constants_1.TESTID_WRAPPER, onClose: () => dispatch({ type: 'civicPass_close' }), wrapper: wrapper, logo: logo, loaded: iframeLoaded },\n react_1.default.createElement(iframe_resizer_react_1.default, { \"data-testid\": constants_1.TESTID_IFRAME, src: iframeSrcUrl, id: constants_1.IFRAME_ID, style: {\n width: '1px',\n minWidth: '100%',\n border: 'none',\n height: '26px',\n transition: 'height 0.25s ease',\n }, heightCalculationMethod: \"min\", checkOrigin: false, onLoad: () => setIframeLoaded(true), inPageLinks: true, allow: \"camera\", allowFullScreen: true, frameBorder: \"0\" }))))));\n};\nexports.GatewayProvider = GatewayProvider;\nconst useGateway = () => (0, react_1.useContext)(GatewayContext);\nexports.useGateway = useGateway;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IFRAME_ID = exports.TESTID_IFRAME_CLOSE_BTN = exports.TESTID_RECONNECT_WALLET = exports.TESTID_WRAPPER_CONTAINER = exports.TESTID_WRAPPER = exports.TESTID_IFRAME = void 0;\nexports.TESTID_IFRAME = 'IFRAME';\nexports.TESTID_WRAPPER = 'WRAPPER';\nexports.TESTID_WRAPPER_CONTAINER = 'WRAPPER_CONTAINER';\nexports.TESTID_RECONNECT_WALLET = 'RECONNECT_WALLET';\nexports.TESTID_IFRAME_CLOSE_BTN = 'TESTID_IFRAME_CLOSE_BTN';\nexports.IFRAME_ID = 'CIVIC_PASS_IFRAME';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultApiNumRetries = exports.API_NUM_RETRIES = exports.getCivicPassEndpoint = exports.COMPLIANCE_ENDPOINTS = exports.DEFAULT_API_NUM_RETRIES = exports.DEFAULT_REFRESH_INTERVAL = exports.DEFAULT_GATEKEEPER_STAGE = exports.DEFAULT_CIVIC_COMPLIANCE_SRC_URL = void 0;\nexports.DEFAULT_CIVIC_COMPLIANCE_SRC_URL = 'https://pass-dev.civic.com/';\nexports.DEFAULT_GATEKEEPER_STAGE = 'prod';\n// This is the regular refresh interval, not retry on errors:\nexports.DEFAULT_REFRESH_INTERVAL = 1000 * 60 * 60 * 6; // 6 hours\nexports.DEFAULT_API_NUM_RETRIES = 3;\nexports.COMPLIANCE_ENDPOINTS = {\n test: 'https://passv2-dev.civic.com',\n local: 'https://passv2-dev.civic.com',\n dev: 'https://passv2-dev.civic.com',\n preprod: 'https://passv2-preprod.civic.com',\n prod: 'https://passv2.civic.com',\n};\nconst getCivicPassEndpoint = (stage) => {\n const endpoint = exports.COMPLIANCE_ENDPOINTS[stage];\n if (!endpoint) {\n throw new Error(`Invalid stage ${stage}`);\n }\n return endpoint;\n};\nexports.getCivicPassEndpoint = getCivicPassEndpoint;\n/*\n * Number of retries when an API call fails\n * This uses exponential backoff so we don't want too many retries\n * as it can spread out in time quite quickly.\n */\nexports.API_NUM_RETRIES = {\n test: 5,\n local: 5,\n dev: 5,\n};\nconst getDefaultApiNumRetries = (stage) => exports.API_NUM_RETRIES[stage] || exports.DEFAULT_API_NUM_RETRIES;\nexports.getDefaultApiNumRetries = getDefaultApiNumRetries;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.statusFromToken = exports.resetState = void 0;\nconst types_1 = require(\"../types\");\n// eslint-disable-next-line import/prefer-default-export\nconst resetState = (state) => (Object.assign(Object.assign({}, state), { gatewayStatus: types_1.GatewayStatus.UNKNOWN, tokenRequested: false, iframeMinimized: false, firstTokenCheck: true, renderIframe: false, gatewayToken: undefined, powoRequested: undefined, refreshTimeoutId: undefined, powoFinished: false, refreshInProgress: false, tokenIssuanceState: types_1.TokenIssuanceState.NOT_REQUESTED, walletToRefresh: undefined, walletPowoInProgress: false, gatekeeperRecordState: undefined, civicPass: {\n status: types_1.CivicPassIssuanceStatus.NOT_REQUESTED,\n iframeMinimized: false,\n renderIframe: false,\n } }));\nexports.resetState = resetState;\nconst hasExpired = (gatewayToken) => {\n const now = Math.floor(Date.now() / 1000);\n return !!gatewayToken.expiryTime && now >= gatewayToken.expiryTime;\n};\nconst isLocationNotSupported = (recordState) => {\n if (!recordState)\n return false;\n return [types_1.GatekeeperRecordState.LOCATION_NOT_SUPPORTED].includes(recordState);\n};\nconst isIssuedLocationNotSupported = (recordState) => {\n if (!recordState)\n return false;\n return [types_1.GatekeeperRecordState.ISSUED_LOCATION_NOT_SUPPORTED].includes(recordState);\n};\nconst statusFromToken = (state, gatewayToken) => {\n if (!gatewayToken)\n return state.gatewayStatus;\n switch (gatewayToken.state) {\n case types_1.State.ACTIVE:\n if (isLocationNotSupported(state.gatekeeperRecordState)) {\n return types_1.GatewayStatus.LOCATION_NOT_SUPPORTED;\n }\n if (isIssuedLocationNotSupported(state.gatekeeperRecordState)) {\n return types_1.GatewayStatus.REFRESH_TOKEN_REQUIRED;\n }\n if (state.gatewayStatus === types_1.GatewayStatus.PROOF_OF_WALLET_OWNERSHIP) {\n return types_1.GatewayStatus.PROOF_OF_WALLET_OWNERSHIP;\n }\n return hasExpired(gatewayToken) ? types_1.GatewayStatus.REFRESH_TOKEN_REQUIRED : types_1.GatewayStatus.ACTIVE;\n case types_1.State.REVOKED:\n return types_1.GatewayStatus.REVOKED;\n case types_1.State.FROZEN:\n return types_1.GatewayStatus.FROZEN;\n default:\n return types_1.GatewayStatus.UNKNOWN;\n }\n};\nexports.statusFromToken = statusFromToken;\n","/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\n\nexport default F;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\nexport default T;","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nexport default {\n '@@functional/placeholder': true\n};","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add =\n/*#__PURE__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\nexport default add;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex =\n/*#__PURE__*/\n_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust =\n/*#__PURE__*/\n_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = _concat(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\nexport default adjust;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAll =\n/*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall =\n/*#__PURE__*/\n_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\nexport default _xall;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xall from \"./internal/_xall.js\";\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\nexport default all;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop =\n/*#__PURE__*/\n_curry2(function prop(p, obj) {\n return path([p], obj);\n});\n\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck =\n/*#__PURE__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass =\n/*#__PURE__*/\n_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\nexport default allPass;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always =\n/*#__PURE__*/\n_curry1(function always(val) {\n return function () {\n return val;\n };\n});\n\nexport default always;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and =\n/*#__PURE__*/\n_curry2(function and(a, b) {\n return a && b;\n});\n\nexport default and;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAny =\n/*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany =\n/*#__PURE__*/\n_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\nexport default _xany;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\nexport default any;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass =\n/*#__PURE__*/\n_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\nexport default anyPass;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport map from \"./map.js\";\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap =\n/*#__PURE__*/\n_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\n\nexport default ap;","export default function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}","import _concat from \"./_concat.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAperture =\n/*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture =\n/*#__PURE__*/\n_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\nexport default _xaperture;","import _aperture from \"./internal/_aperture.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xaperture from \"./internal/_xaperture.js\";\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xaperture, _aperture));\n\nexport default aperture;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append =\n/*#__PURE__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\nexport default append;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply =\n/*#__PURE__*/\n_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\nexport default apply;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values =\n/*#__PURE__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import _curry1 from \"./internal/_curry1.js\";\nimport apply from \"./apply.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\nimport keys from \"./keys.js\";\nimport values from \"./values.js\"; // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec =\n/*#__PURE__*/\n_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\n\nexport default applySpec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo =\n/*#__PURE__*/\n_curry2(function applyTo(x, f) {\n return f(x);\n});\n\nexport default applyTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend =\n/*#__PURE__*/\n_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\nexport default ascend;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\nexport default assoc;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport assoc from \"./assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\n\nexport default assocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry =\n/*#__PURE__*/\n_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\nexport default nAry;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary =\n/*#__PURE__*/\n_curry1(function binary(fn) {\n return nAry(2, fn);\n});\n\nexport default binary;","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport ap from \"./ap.js\";\nimport curryN from \"./curryN.js\";\nimport map from \"./map.js\";\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN =\n/*#__PURE__*/\n_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\nexport default liftN;","import _curry1 from \"./internal/_curry1.js\";\nimport liftN from \"./liftN.js\";\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift =\n/*#__PURE__*/\n_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\n\nexport default lift;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport and from \"./and.js\";\nimport lift from \"./lift.js\";\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both =\n/*#__PURE__*/\n_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\n\nexport default both;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry =\n/*#__PURE__*/\n_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\nexport default curry;","import curry from \"./curry.js\";\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call =\n/*#__PURE__*/\ncurry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nexport default call;","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}","import _forceReduced from \"./_forceReduced.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nexport default _flatCat;","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\nimport _xchain from \"./internal/_xchain.js\";\nimport map from \"./map.js\";\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return _makeFlat(false)(map(fn, monad));\n}));\n\nexport default chain;","import _curry2 from \"./_curry2.js\";\nimport _flatCat from \"./_flatCat.js\";\nimport map from \"../map.js\";\n\nvar _xchain =\n/*#__PURE__*/\n_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\n\nexport default _xchain;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp =\n/*#__PURE__*/\n_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\nexport default clamp;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (type(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return _cloneRegExp(value);\n\n default:\n return value;\n }\n}","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone =\n/*#__PURE__*/\n_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\n\nexport default clone;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator =\n/*#__PURE__*/\n_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\nexport default comparator;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nexport default not;","import lift from \"./lift.js\";\nimport not from \"./not.js\";\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement =\n/*#__PURE__*/\nlift(not);\nexport default complement;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","import chain from \"./chain.js\";\nimport compose from \"./compose.js\";\nimport map from \"./map.js\";\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nexport default function composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n}","export default function _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _pipeP from \"./internal/_pipeP.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nexport default function pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipeP, arguments[0], tail(arguments)));\n}","import pipeP from \"./pipeP.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nexport default function composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return pipeP.apply(this, reverse(arguments));\n}","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head =\n/*#__PURE__*/\nnth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nexport default identity;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport head from \"./head.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport tail from \"./tail.js\";\nimport identity from \"./identity.js\";\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith =\n/*#__PURE__*/\n_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n\n var headList = head(list);\n var tailList = tail(list);\n return _arity(headList.length, function () {\n return _reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\nexport default pipeWith;","import _curry2 from \"./internal/_curry2.js\";\nimport pipeWith from \"./pipeWith.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith =\n/*#__PURE__*/\n_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\n\nexport default composeWith;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFilter =\n/*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter =\n/*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\nexport default _xfilter;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject =\n/*#__PURE__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\nexport default reject;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString =\n/*#__PURE__*/\n_curry1(function toString(val) {\n return _toString(val, []);\n});\n\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat =\n/*#__PURE__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(b) + ' is not an array');\n }\n\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n\n throw new TypeError(toString(b) + ' is not a string');\n }\n\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\nexport default concat;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\n_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\nexport default cond;","import _curry2 from \"./internal/_curry2.js\";\nimport curry from \"./curry.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN =\n/*#__PURE__*/\n_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return curry(nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\nexport default constructN;","import _curry1 from \"./internal/_curry1.js\";\nimport constructN from \"./constructN.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct =\n/*#__PURE__*/\n_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\n\nexport default construct;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default contains;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge =\n/*#__PURE__*/\n_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\nexport default converge;","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XReduceBy =\n/*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy =\n/*#__PURE__*/\n_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\nexport default _xreduceBy;","import _clone from \"./internal/_clone.js\";\nimport _curryN from \"./internal/_curryN.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _has from \"./internal/_has.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xreduceBy from \"./internal/_xreduceBy.js\";\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy =\n/*#__PURE__*/\n_curryN(4, [],\n/*#__PURE__*/\n_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\nexport default reduceBy;","import reduceBy from \"./reduceBy.js\";\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy =\n/*#__PURE__*/\nreduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nexport default countBy;","import add from \"./add.js\";\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec =\n/*#__PURE__*/\nadd(-1);\nexport default dec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo =\n/*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend =\n/*#__PURE__*/\n_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\nexport default descend;","import _includes from \"./_includes.js\";\n\nvar _Set =\n/*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nexport default _Set;","import _curry2 from \"./internal/_curry2.js\";\nimport _Set from \"./internal/_Set.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference =\n/*#__PURE__*/\n_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default difference;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith =\n/*#__PURE__*/\n_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default differenceWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc =\n/*#__PURE__*/\n_curry2(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\nexport default dissoc;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove =\n/*#__PURE__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;","import _curry3 from \"./internal/_curry3.js\";\nimport adjust from \"./adjust.js\";\nimport always from \"./always.js\";\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update =\n/*#__PURE__*/\n_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\n\nexport default update;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\nimport dissoc from \"./dissoc.js\";\nimport remove from \"./remove.js\";\nimport update from \"./update.js\";\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath =\n/*#__PURE__*/\n_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide =\n/*#__PURE__*/\n_curry2(function divide(a, b) {\n return a / b;\n});\n\nexport default divide;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDrop =\n/*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop =\n/*#__PURE__*/\n_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\nexport default _xdrop;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdrop from \"./internal/_xdrop.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\n\nexport default drop;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTake =\n/*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake =\n/*#__PURE__*/\n_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\nexport default _xtake;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtake from \"./internal/_xtake.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\nexport default take;","import take from \"../take.js\";\nexport default function dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLast =\n/*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast =\n/*#__PURE__*/\n_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\nexport default _xdropLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLast from \"./internal/_dropLast.js\";\nimport _xdropLast from \"./internal/_xdropLast.js\";\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLast, _dropLast));\n\nexport default dropLast;","import slice from \"../slice.js\";\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return slice(0, idx + 1, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLastWhile =\n/*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile =\n/*#__PURE__*/\n_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\nexport default _xdropLastWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLastWhile from \"./internal/_dropLastWhile.js\";\nimport _xdropLastWhile from \"./internal/_xdropLastWhile.js\";\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropLastWhile, _dropLastWhile));\n\nexport default dropLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropRepeatsWith =\n/*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith =\n/*#__PURE__*/\n_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\nexport default _xdropRepeatsWith;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last =\n/*#__PURE__*/\nnth(-1);\nexport default last;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport last from \"./last.js\";\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\nexport default dropRepeatsWith;","import _curry1 from \"./internal/_curry1.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport dropRepeatsWith from \"./dropRepeatsWith.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_dispatchable([],\n/*#__PURE__*/\n_xdropRepeatsWith(equals),\n/*#__PURE__*/\ndropRepeatsWith(equals)));\n\nexport default dropRepeats;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropWhile =\n/*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile =\n/*#__PURE__*/\n_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\nexport default _xdropWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropWhile from \"./internal/_xdropWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return slice(idx, Infinity, xs);\n}));\n\nexport default dropWhile;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or =\n/*#__PURE__*/\n_curry2(function or(a, b) {\n return a || b;\n});\n\nexport default or;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport lift from \"./lift.js\";\nimport or from \"./or.js\";\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either =\n/*#__PURE__*/\n_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\n\nexport default either;","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty =\n/*#__PURE__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\nexport default empty;","import _curry2 from \"./internal/_curry2.js\";\nimport drop from \"./drop.js\";\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast =\n/*#__PURE__*/\n_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\n\nexport default takeLast;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport takeLast from \"./takeLast.js\";\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith =\n/*#__PURE__*/\n_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\n});\n\nexport default endsWith;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy =\n/*#__PURE__*/\n_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\n\nexport default eqBy;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps =\n/*#__PURE__*/\n_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\n\nexport default eqProps;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve =\n/*#__PURE__*/\n_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\nexport default evolve;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind =\n/*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind =\n/*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex =\n/*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex =\n/*#__PURE__*/\n_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLast =\n/*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast =\n/*#__PURE__*/\n_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\nexport default _xfindLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\nexport default findLast;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLastIndex =\n/*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex =\n/*#__PURE__*/\n_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\nexport default _xfindLastIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLastIndex from \"./internal/_xfindLastIndex.js\";\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\nexport default findLastIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_makeFlat(true));\n\nexport default flatten;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip =\n/*#__PURE__*/\n_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\nexport default flip;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\nexport default forEach;","import _curry2 from \"./internal/_curry2.js\";\nimport keys from \"./keys.js\";\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed =\n/*#__PURE__*/\n_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\nexport default forEachObjIndexed;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs =\n/*#__PURE__*/\n_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\nexport default fromPairs;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport reduceBy from \"./reduceBy.js\";\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('groupBy',\n/*#__PURE__*/\nreduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\nexport default groupBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith =\n/*#__PURE__*/\n_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\nexport default groupWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt =\n/*#__PURE__*/\n_curry2(function gt(a, b) {\n return a > b;\n});\n\nexport default gt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte =\n/*#__PURE__*/\n_curry2(function gte(a, b) {\n return a >= b;\n});\n\nexport default gte;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath =\n/*#__PURE__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport hasPath from \"./hasPath.js\";\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has =\n/*#__PURE__*/\n_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\n\nexport default has;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn =\n/*#__PURE__*/\n_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\n\nexport default hasIn;","import _objectIs from \"./internal/_objectIs.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical =\n/*#__PURE__*/\n_curry2(_objectIs);\n\nexport default identical;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse =\n/*#__PURE__*/\n_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\nexport default ifElse;","import add from \"./add.js\";\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc =\n/*#__PURE__*/\nadd(1);\nexport default inc;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes =\n/*#__PURE__*/\n_curry2(_includes);\n\nexport default includes;","import reduceBy from \"./reduceBy.js\";\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy =\n/*#__PURE__*/\nreduceBy(function (acc, elem) {\n return elem;\n}, null);\nexport default indexBy;","import _curry2 from \"./internal/_curry2.js\";\nimport _indexOf from \"./internal/_indexOf.js\";\nimport _isArray from \"./internal/_isArray.js\";\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf =\n/*#__PURE__*/\n_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\n\nexport default indexOf;","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init =\n/*#__PURE__*/\nslice(0, -1);\nexport default init;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _filter from \"./internal/_filter.js\";\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin =\n/*#__PURE__*/\n_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\n});\n\nexport default innerJoin;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert =\n/*#__PURE__*/\n_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\nexport default insert;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll =\n/*#__PURE__*/\n_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\nexport default insertAll;","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy =\n/*#__PURE__*/\n_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqBy;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq =\n/*#__PURE__*/\nuniqBy(identity);\nexport default uniq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _filter from \"./internal/_filter.js\";\nimport flip from \"./flip.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection =\n/*#__PURE__*/\n_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\n\nexport default intersection;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\nexport default intersperse;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf =\n/*#__PURE__*/\n_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\nexport default objOf;","import _objectAssign from \"./_objectAssign.js\";\nimport _identity from \"./_identity.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _isTransformer from \"./_isTransformer.js\";\nimport objOf from \"../objOf.js\";\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}","import _clone from \"./internal/_clone.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _isTransformer from \"./internal/_isTransformer.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _stepCat from \"./internal/_stepCat.js\";\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into =\n/*#__PURE__*/\n_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\n\nexport default into;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport keys from \"./keys.js\";\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert =\n/*#__PURE__*/\n_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invert;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj =\n/*#__PURE__*/\n_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invertObj;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport curryN from \"./curryN.js\";\nimport toString from \"./toString.js\";\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker =\n/*#__PURE__*/\n_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\nexport default invoker;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is =\n/*#__PURE__*/\n_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\nexport default is;","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty =\n/*#__PURE__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\nexport default isEmpty;","import invoker from \"./invoker.js\";\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join =\n/*#__PURE__*/\ninvoker(1, 'join');\nexport default join;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt =\n/*#__PURE__*/\n_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\nexport default juxt;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn =\n/*#__PURE__*/\n_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\nexport default keysIn;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf =\n/*#__PURE__*/\n_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\nexport default lastIndexOf;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length =\n/*#__PURE__*/\n_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\n\nexport default length;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\nexport default lens;","import _curry1 from \"./internal/_curry1.js\";\nimport lens from \"./lens.js\";\nimport nth from \"./nth.js\";\nimport update from \"./update.js\";\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex =\n/*#__PURE__*/\n_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\n\nexport default lensIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\nexport default lensPath;","import _curry1 from \"./internal/_curry1.js\";\nimport assoc from \"./assoc.js\";\nimport lens from \"./lens.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp =\n/*#__PURE__*/\n_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\n\nexport default lensProp;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt =\n/*#__PURE__*/\n_curry2(function lt(a, b) {\n return a < b;\n});\n\nexport default lt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte =\n/*#__PURE__*/\n_curry2(function lte(a, b) {\n return a <= b;\n});\n\nexport default lte;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum =\n/*#__PURE__*/\n_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccum;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight =\n/*#__PURE__*/\n_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccumRight;","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport keys from \"./keys.js\";\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed =\n/*#__PURE__*/\n_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\n\nexport default mapObjIndexed;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match =\n/*#__PURE__*/\n_curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\n\nexport default match;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod =\n/*#__PURE__*/\n_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\nexport default mathMod;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy =\n/*#__PURE__*/\n_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\nexport default maxBy;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum =\n/*#__PURE__*/\nreduce(add, 0);\nexport default sum;","import _curry1 from \"./internal/_curry1.js\";\nimport sum from \"./sum.js\";\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean =\n/*#__PURE__*/\n_curry1(function mean(list) {\n return sum(list) / list.length;\n});\n\nexport default mean;","import _curry1 from \"./internal/_curry1.js\";\nimport mean from \"./mean.js\";\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median =\n/*#__PURE__*/\n_curry1(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\nexport default median;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith =\n/*#__PURE__*/\n_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\nexport default memoizeWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge =\n/*#__PURE__*/\n_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default merge;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll =\n/*#__PURE__*/\n_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\n\nexport default mergeAll;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft =\n/*#__PURE__*/\n_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepLeft;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith =\n/*#__PURE__*/\n_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\nexport default mergeDeepWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft =\n/*#__PURE__*/\n_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\n});\n\nexport default mergeLeft;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith =\n/*#__PURE__*/\n_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\nexport default mergeWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min =\n/*#__PURE__*/\n_curry2(function min(a, b) {\n return b < a ? b : a;\n});\n\nexport default min;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy =\n/*#__PURE__*/\n_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\nexport default minBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo =\n/*#__PURE__*/\n_curry2(function modulo(a, b) {\n return a % b;\n});\n\nexport default modulo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move =\n/*#__PURE__*/\n_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\nexport default move;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply =\n/*#__PURE__*/\n_curry2(function multiply(a, b) {\n return a * b;\n});\n\nexport default multiply;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate =\n/*#__PURE__*/\n_curry1(function negate(n) {\n return -n;\n});\n\nexport default negate;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport all from \"./all.js\";\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none =\n/*#__PURE__*/\n_curry2(function none(fn, input) {\n return all(_complement(fn), input);\n});\n\nexport default none;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg =\n/*#__PURE__*/\n_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\n\nexport default nthArg;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o =\n/*#__PURE__*/\n_curry3(function o(f, g, x) {\n return f(g(x));\n});\n\nexport default o;","export default function _of(x) {\n return [x];\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _of from \"./internal/_of.js\";\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of =\n/*#__PURE__*/\n_curry1(_of);\n\nexport default of;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit =\n/*#__PURE__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default omit;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once =\n/*#__PURE__*/\n_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\nexport default once;","import _isFunction from \"./_isFunction.js\";\nimport _toString from \"./_toString.js\";\nexport default function _assertPromise(name, p) {\n if (p == null || !_isFunction(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + _toString(p, []));\n }\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise =\n/*#__PURE__*/\n_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n\n return p.then(null, f);\n});\n\nexport default otherwise;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over =\n/*#__PURE__*/\n_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\nexport default over;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair =\n/*#__PURE__*/\n_curry2(function pair(fst, snd) {\n return [fst, snd];\n});\n\nexport default pair;","import _arity from \"./_arity.js\";\nimport _curry2 from \"./_curry2.js\";\nexport default function _createPartialApplicator(concat) {\n return _curry2(function (fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial =\n/*#__PURE__*/\n_createPartialApplicator(_concat);\n\nexport default partial;","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\nimport flip from \"./flip.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight =\n/*#__PURE__*/\n_createPartialApplicator(\n/*#__PURE__*/\nflip(_concat));\n\nexport default partialRight;","import filter from \"./filter.js\";\nimport juxt from \"./juxt.js\";\nimport reject from \"./reject.js\";\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition =\n/*#__PURE__*/\njuxt([filter, reject]);\nexport default partition;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\nimport path from \"./path.js\";\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq =\n/*#__PURE__*/\n_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\n\nexport default pathEq;","import _curry3 from \"./internal/_curry3.js\";\nimport defaultTo from \"./defaultTo.js\";\nimport path from \"./path.js\";\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr =\n/*#__PURE__*/\n_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\n\nexport default pathOr;","import _curry3 from \"./internal/_curry3.js\";\nimport path from \"./path.js\";\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies =\n/*#__PURE__*/\n_curry3(function pathSatisfies(pred, propPath, obj) {\n return pred(path(propPath, obj));\n});\n\nexport default pathSatisfies;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick =\n/*#__PURE__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default pick;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll =\n/*#__PURE__*/\n_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\nexport default pickAll;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy =\n/*#__PURE__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default pickBy;","import composeK from \"./composeK.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nexport default function pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return composeK.apply(this, reverse(arguments));\n}","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend =\n/*#__PURE__*/\n_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\n\nexport default prepend;","import multiply from \"./multiply.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product =\n/*#__PURE__*/\nreduce(multiply, 1);\nexport default product;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith =\n/*#__PURE__*/\n_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\nexport default useWith;","import _map from \"./internal/_map.js\";\nimport identity from \"./identity.js\";\nimport pickAll from \"./pickAll.js\";\nimport useWith from \"./useWith.js\";\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project =\n/*#__PURE__*/\nuseWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\nexport default project;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq =\n/*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\n\nexport default propEq;","import _curry3 from \"./internal/_curry3.js\";\nimport is from \"./is.js\";\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs =\n/*#__PURE__*/\n_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\n\nexport default propIs;","import _curry3 from \"./internal/_curry3.js\";\nimport pathOr from \"./pathOr.js\";\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr =\n/*#__PURE__*/\n_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\n\nexport default propOr;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies =\n/*#__PURE__*/\n_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\nexport default propSatisfies;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props =\n/*#__PURE__*/\n_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\n });\n});\n\nexport default props;","import _curry2 from \"./internal/_curry2.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range =\n/*#__PURE__*/\n_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\nexport default range;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight =\n/*#__PURE__*/\n_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\nexport default reduceRight;","import _curryN from \"./internal/_curryN.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile =\n/*#__PURE__*/\n_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\n\nexport default reduceWhile;","import _curry1 from \"./internal/_curry1.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced =\n/*#__PURE__*/\n_curry1(_reduced);\n\nexport default reduced;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times =\n/*#__PURE__*/\n_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\nexport default times;","import _curry2 from \"./internal/_curry2.js\";\nimport always from \"./always.js\";\nimport times from \"./times.js\";\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat =\n/*#__PURE__*/\n_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\n\nexport default repeat;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace =\n/*#__PURE__*/\n_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\nexport default replace;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan =\n/*#__PURE__*/\n_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\nexport default scan;","import _curry2 from \"./internal/_curry2.js\";\nimport ap from \"./ap.js\";\nimport map from \"./map.js\";\nimport prepend from \"./prepend.js\";\nimport reduceRight from \"./reduceRight.js\";\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence =\n/*#__PURE__*/\n_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\n\nexport default sequence;","import _curry3 from \"./internal/_curry3.js\";\nimport always from \"./always.js\";\nimport over from \"./over.js\";\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set =\n/*#__PURE__*/\n_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\n\nexport default set;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort =\n/*#__PURE__*/\n_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\nexport default sort;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy =\n/*#__PURE__*/\n_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\nexport default sortBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith =\n/*#__PURE__*/\n_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\nexport default sortWith;","import invoker from \"./invoker.js\";\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split =\n/*#__PURE__*/\ninvoker(1, 'split');\nexport default split;","import _curry2 from \"./internal/_curry2.js\";\nimport length from \"./length.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt =\n/*#__PURE__*/\n_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\n\nexport default splitAt;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery =\n/*#__PURE__*/\n_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n\n return result;\n});\n\nexport default splitEvery;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen =\n/*#__PURE__*/\n_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\nexport default splitWhen;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport take from \"./take.js\";\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith =\n/*#__PURE__*/\n_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\n\nexport default startsWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract =\n/*#__PURE__*/\n_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\nexport default subtract;","import _curry2 from \"./internal/_curry2.js\";\nimport concat from \"./concat.js\";\nimport difference from \"./difference.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference =\n/*#__PURE__*/\n_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\n\nexport default symmetricDifference;","import _curry3 from \"./internal/_curry3.js\";\nimport concat from \"./concat.js\";\nimport differenceWith from \"./differenceWith.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith =\n/*#__PURE__*/\n_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\n\nexport default symmetricDifferenceWith;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile =\n/*#__PURE__*/\n_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return slice(idx + 1, Infinity, xs);\n});\n\nexport default takeLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTakeWhile =\n/*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile =\n/*#__PURE__*/\n_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\nexport default _xtakeWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtakeWhile from \"./internal/_xtakeWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return slice(0, idx, xs);\n}));\n\nexport default takeWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTap =\n/*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap =\n/*#__PURE__*/\n_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\nexport default _xtap;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtap from \"./internal/_xtap.js\";\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\n\nexport default tap;","import _cloneRegExp from \"./internal/_cloneRegExp.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _isRegExp from \"./internal/_isRegExp.js\";\nimport toString from \"./toString.js\";\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test =\n/*#__PURE__*/\n_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n\n return _cloneRegExp(pattern).test(str);\n});\n\nexport default test;","export default function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen =\n/*#__PURE__*/\n_curry2(function andThen(f, p) {\n _assertPromise('andThen', p);\n\n return p.then(f);\n});\n\nexport default andThen;","import invoker from \"./invoker.js\";\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower =\n/*#__PURE__*/\ninvoker(0, 'toLowerCase');\nexport default toLower;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs =\n/*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn =\n/*#__PURE__*/\n_curry1(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\nexport default toPairsIn;","import invoker from \"./invoker.js\";\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper =\n/*#__PURE__*/\ninvoker(0, 'toUpperCase');\nexport default toUpper;","import _reduce from \"./internal/_reduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce =\n/*#__PURE__*/\ncurryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nexport default transduce;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose =\n/*#__PURE__*/\n_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\nexport default transpose;","import _curry3 from \"./internal/_curry3.js\";\nimport map from \"./map.js\";\nimport sequence from \"./sequence.js\";\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse =\n/*#__PURE__*/\n_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\n\nexport default traverse;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim ||\n/*#__PURE__*/\nws.trim() || !\n/*#__PURE__*/\nzeroWidth.trim() ?\n/*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) :\n/*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _arity from \"./internal/_arity.js\";\nimport _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch =\n/*#__PURE__*/\n_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\n\nexport default tryCatch;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply =\n/*#__PURE__*/\n_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\nexport default unapply;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary =\n/*#__PURE__*/\n_curry1(function unary(fn) {\n return nAry(1, fn);\n});\n\nexport default unary;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN =\n/*#__PURE__*/\n_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\nexport default uncurryN;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold =\n/*#__PURE__*/\n_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\nexport default unfold;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport compose from \"./compose.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\ncompose(uniq, _concat));\n\nexport default union;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith =\n/*#__PURE__*/\n_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqWith;","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport uniqWith from \"./uniqWith.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith =\n/*#__PURE__*/\n_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\n\nexport default unionWith;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless =\n/*#__PURE__*/\n_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\nexport default unless;","import _identity from \"./internal/_identity.js\";\nimport chain from \"./chain.js\";\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest =\n/*#__PURE__*/\nchain(_identity);\nexport default unnest;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until =\n/*#__PURE__*/\n_curry3(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\nexport default until;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn =\n/*#__PURE__*/\n_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\nexport default valuesIn;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\nexport default view;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when =\n/*#__PURE__*/\n_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\nexport default when;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where =\n/*#__PURE__*/\n_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\nexport default where;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport map from \"./map.js\";\nimport where from \"./where.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq =\n/*#__PURE__*/\n_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\n\nexport default whereEq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport flip from \"./flip.js\";\nimport reject from \"./reject.js\";\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without =\n/*#__PURE__*/\n_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\n\nexport default without;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor =\n/*#__PURE__*/\n_curry2(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\nexport default xor;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod =\n/*#__PURE__*/\n_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default xprod;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip =\n/*#__PURE__*/\n_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zip;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj =\n/*#__PURE__*/\n_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\nexport default zipObj;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith =\n/*#__PURE__*/\n_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zipWith;","import curryN from \"./curryN.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify =\n/*#__PURE__*/\n_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\nexport default thunkify;","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n console.warn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\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 var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#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 contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: 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), formatDateTimeRange: formatDateTimeRange.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), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.millify = void 0;\nconst options_1 = require(\"./options\");\nconst utils_1 = require(\"./utils\");\n// Most commonly used digit grouping base.\nconst DIGIT_GROUPING_BASE = 1000;\n/**\n * Generator that divides a number until a decimal value is found.\n *\n * The denominator is defined by the numerical digit grouping base,\n * or interval. The most commonly-used digit group interval is 1000.\n *\n * e.g. 1,000,000 is grouped in multiples of 1000.\n */\nfunction* divider(value) {\n // Create a mutable copy of the base.\n let denominator = DIGIT_GROUPING_BASE;\n while (true) {\n const result = value / denominator;\n if (result < 1) {\n // End of operation. We can't divide the value any further.\n return;\n }\n yield result;\n // The denominator is increased every iteration by multiplying\n // the base by itself, until a decimal value remains.\n denominator *= DIGIT_GROUPING_BASE;\n }\n}\n/**\n * millify converts long numbers to human-readable strings.\n */\nfunction millify(value, options) {\n var _a;\n // Override default options with options supplied by user.\n const opts = options\n ? Object.assign(Object.assign({}, options_1.defaultOptions), options) : options_1.defaultOptions;\n if (!Array.isArray(opts.units) || !opts.units.length) {\n throw new Error(\"Option `units` must be a non-empty array\");\n }\n // Validate value for type and length.\n let val = utils_1.parseValue(value);\n // Add a minus sign (-) prefix if it's a negative number.\n const prefix = val < 0 ? \"-\" : \"\";\n // Work only with positive values for simplicity's sake.\n val = Math.abs(val);\n // Keep dividing the input value by the digit grouping base\n // until the decimal and the unit index is deciphered.\n let unitIndex = 0;\n for (const result of divider(val)) {\n val = result;\n unitIndex += 1;\n }\n // Return the original number if the number is too large to have\n // a corresponding unit. Returning anything else is ambiguous.\n const unitIndexOutOfRange = unitIndex >= opts.units.length;\n if (unitIndexOutOfRange) {\n return value.toString();\n }\n // Round decimal up to desired precision.\n let rounded = utils_1.roundTo(val, opts.precision);\n // Fixes an edge case bug that outputs certain numbers as 1000K instead of 1M.\n // The rounded value needs another iteration in the divider cycle.\n for (const result of divider(rounded)) {\n rounded = result;\n unitIndex += 1;\n }\n // Calculate the unit suffix and make it lowercase (if needed).\n const unit = (_a = opts.units[unitIndex]) !== null && _a !== void 0 ? _a : \"\";\n const suffix = opts.lowercase ? unit.toLowerCase() : unit;\n // Add a space between number and abbreviation.\n const space = opts.space ? \" \" : \"\";\n // Replace decimal mark if desired.\n const formatted = rounded\n .toString()\n .replace(options_1.defaultOptions.decimalSeparator, opts.decimalSeparator);\n return `${prefix}${formatted}${space}${suffix}`;\n}\nexports.millify = millify;\nexports.default = millify;\n","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import type {\n Commitment,\n Connection,\n RpcResponseAndContext,\n SimulatedTransactionResponse,\n Transaction,\n} from \"@solana/web3.js\";\nimport { SendTransactionError } from \"@solana/web3.js\";\n\n/**\n * Copy of Connection.simulateTransaction that takes a commitment parameter.\n */\nexport async function simulateTransactionWithCommitment(\n connection: Connection,\n transaction: Transaction,\n commitment: Commitment = \"processed\"\n): Promise> {\n const connectionInner = connection as Connection & {\n _disableBlockhashCaching: boolean;\n _recentBlockhash: (disableBlockhashCaching: boolean) => Promise;\n _rpcRequest: (\n rpc: \"simulateTransaction\",\n args: [\n string,\n {\n encoding: string;\n commitment: Commitment;\n }\n ]\n ) => Promise<{\n error: Error;\n result: RpcResponseAndContext;\n }>;\n };\n const transactionTyped = transaction as Transaction & {\n _serialize: (buffer: Buffer) => Buffer;\n };\n\n transaction.recentBlockhash = await connectionInner._recentBlockhash(\n connectionInner._disableBlockhashCaching\n );\n\n const signData = transaction.serializeMessage();\n\n const wireTransaction = transactionTyped._serialize(signData);\n const encodedTransaction = wireTransaction.toString(\"base64\");\n const config = { encoding: \"base64\", commitment };\n\n const res = await connectionInner._rpcRequest(\"simulateTransaction\", [\n encodedTransaction,\n config,\n ]);\n if (res.error) {\n throw new SendTransactionError(\n \"failed to simulate transaction: \" + res.error.message,\n res.result.value.logs ?? undefined\n );\n }\n return res.result;\n}\n","import type {\n Blockhash,\n Commitment,\n ConfirmOptions,\n Connection,\n RpcResponseAndContext,\n SendOptions,\n SimulatedTransactionResponse,\n Transaction,\n} from \"@solana/web3.js\";\n\nimport type { Broadcaster } from \".\";\nimport {\n DEFAULT_PROVIDER_OPTIONS,\n PendingTransaction,\n suppressConsoleErrorAsync,\n} from \".\";\nimport { simulateTransactionWithCommitment } from \"./utils/simulateTransactionWithCommitment\";\n\nexport interface BroadcastOptions extends ConfirmOptions {\n /**\n * Prints the transaction logs as emitted by @solana/web3.js. Defaults to true.\n */\n printLogs?: boolean;\n}\n\n/**\n * Broadcasts transactions to a single connection.\n */\nexport class SingleConnectionBroadcaster implements Broadcaster {\n constructor(\n readonly sendConnection: Connection,\n readonly opts: ConfirmOptions = DEFAULT_PROVIDER_OPTIONS\n ) {}\n\n async getRecentBlockhash(\n commitment: Commitment = \"processed\"\n ): Promise {\n const result = await this.sendConnection.getRecentBlockhash(commitment);\n return result.blockhash;\n }\n\n /**\n * Broadcasts a signed transaction.\n *\n * @param tx\n * @param confirm\n * @param opts\n * @returns\n */\n async broadcast(\n tx: Transaction,\n { printLogs = true, ...opts }: BroadcastOptions = this.opts\n ): Promise {\n if (tx.signatures.length === 0) {\n throw new Error(\"Transaction must be signed before broadcasting.\");\n }\n const rawTx = tx.serialize();\n\n if (printLogs) {\n return new PendingTransaction(\n this.sendConnection,\n await this.sendConnection.sendRawTransaction(rawTx, opts)\n );\n }\n\n return await suppressConsoleErrorAsync(async () => {\n // hide the logs of TX errors if printLogs = false\n return new PendingTransaction(\n this.sendConnection,\n await this.sendConnection.sendRawTransaction(rawTx, opts)\n );\n });\n }\n\n /**\n * Simulates a transaction with a commitment.\n * @param tx\n * @param commitment\n * @returns\n */\n async simulate(\n tx: Transaction,\n {\n commitment = \"processed\",\n verifySigners = true,\n }: {\n commitment?: Commitment;\n verifySigners?: boolean;\n } = {\n commitment: \"processed\",\n verifySigners: true,\n }\n ): Promise> {\n if (verifySigners && tx.signatures.length === 0) {\n throw new Error(\"Transaction must be signed before simulating.\");\n }\n return await simulateTransactionWithCommitment(\n this.sendConnection,\n tx,\n commitment\n );\n }\n}\n\n/**\n * Broadcasts transactions to multiple connections simultaneously.\n */\nexport class MultipleConnectionBroadcaster implements Broadcaster {\n constructor(\n readonly connections: readonly Connection[],\n readonly opts: ConfirmOptions = DEFAULT_PROVIDER_OPTIONS\n ) {}\n\n async getRecentBlockhash(\n commitment: Commitment = this.opts.commitment ?? \"processed\"\n ): Promise {\n const result = await Promise.any(\n this.connections.map((conn) => conn.getRecentBlockhash(commitment))\n );\n return result.blockhash;\n }\n\n private async _sendRawTransaction(\n encoded: Buffer,\n options?: SendOptions\n ): Promise {\n return await Promise.any(\n this.connections.map(async (connection) => {\n return new PendingTransaction(\n connection,\n await connection.sendRawTransaction(encoded, options)\n );\n })\n );\n }\n\n /**\n * Broadcasts a signed transaction.\n *\n * @param tx\n * @param confirm\n * @param opts\n * @returns\n */\n async broadcast(\n tx: Transaction,\n { printLogs = true, ...opts }: BroadcastOptions = this.opts\n ): Promise {\n if (tx.signatures.length === 0) {\n throw new Error(\"Transaction must be signed before broadcasting.\");\n }\n const rawTx = tx.serialize();\n\n if (printLogs) {\n return await this._sendRawTransaction(rawTx, opts);\n }\n\n return await suppressConsoleErrorAsync(async () => {\n // hide the logs of TX errors if printLogs = false\n return await this._sendRawTransaction(rawTx, opts);\n });\n }\n\n /**\n * Simulates a transaction with a commitment.\n * @param tx\n * @param commitment\n * @returns\n */\n async simulate(\n tx: Transaction,\n {\n commitment = \"processed\",\n verifySigners = true,\n }: {\n commitment?: Commitment;\n verifySigners?: boolean;\n } = {\n commitment: \"processed\",\n verifySigners: true,\n }\n ): Promise> {\n if (verifySigners && tx.signatures.length === 0) {\n throw new Error(\"Transaction must be signed before simulating.\");\n }\n return await Promise.any(\n this.connections.map(async (connection) => {\n return await simulateTransactionWithCommitment(\n connection,\n tx,\n commitment\n );\n })\n );\n }\n}\n","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 var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","const noop = () => {\n // noop\n};\n\n/**\n * Hide the console.error because @solana/web3.js often emits noisy errors as a\n * side effect.\n */\nexport const suppressConsoleErrorAsync = async (\n fn: () => Promise\n): Promise => {\n const oldConsoleError = console.error;\n console.error = noop;\n try {\n const result = await fn();\n console.error = oldConsoleError;\n return result;\n } catch (e) {\n console.error = oldConsoleError;\n throw e;\n }\n};\n\n/**\n * Hide the console.error because @solana/web3.js often emits noisy errors as a\n * side effect.\n */\nexport const suppressConsoleError = (fn: () => T): T => {\n const oldConsoleError = console.error;\n console.error = noop;\n try {\n const result = fn();\n console.error = oldConsoleError;\n return result;\n } catch (e) {\n console.error = oldConsoleError;\n throw e;\n }\n};\n\n/**\n * Checks to see if the provided value is not null.\n *\n * Useful for preserving types in filtering out non-null values.\n *\n * @param value\n * @returns\n */\nexport const isNotNull = (value: TValue | null): value is TValue => {\n return value !== null;\n};\n\n/**\n * Checks to see if the provided value is not undefined.\n *\n * @param value\n * @returns\n */\nexport const isNotUndefined = (\n value: TValue | undefined\n): value is TValue => {\n return value !== undefined;\n};\n\n/**\n * Checks to see if the provided value is not null or undefined.\n *\n * @param value\n * @returns\n */\nexport const exists = (\n value: TValue | null | undefined\n): value is TValue => {\n return value !== null && value !== undefined;\n};\n","import type {\n Signer,\n Transaction,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { Keypair, SystemProgram } from \"@solana/web3.js\";\n\nimport type { Provider } from \"..\";\nimport { TransactionEnvelope } from \"..\";\n\n/**\n * Takes in a simulation result of a transaction and prints it in a cool table.\n * ```\n * ┌─────┬───┬───┬───┬───────────┬──────┬─────┬──────┬───┐\n * │index│iso│mar│cum│ programId │quota │used │ left │CPI│\n * ├─────┼───┼───┼───┼───────────┼──────┼─────┼──────┼───┤\n * │ 0 │298│281│464│'ATokenG..'│200000│24270│175730│ 1 │\n * │ 1 │298│ 74│538│'ATokenG..'│178730│21270│157460│ 1 │\n * │ 2 │298│ 74│612│'ATokenG..'│157460│27277│130183│ 1 │\n * │ 3 │298│ 42│686│'ATokenG..'│130183│21270│108913│ 1 │\n * │ 4 │338│265│951│'qExampL..'│108913│76289│ 32624│ 3 │\n * └─────┴───┴───┴───┴───────────┴──────┴─────┴──────┴───┘\n * ```\n *\n * - **index**: the array index of the instruction within the transaction\n * - **iso**: the isolated size of the instruction (marginal cost of only the instruction)\n * - **mar**: the marginal size cost of the instruction (when added to previous)\n * - **cum**: the cumulative size of the instructions up until that instruction\n * - **quota/used/left**: [BPF instruction compute unit info](https://docs.solana.com/developing/programming-model/runtime)\n * - **CPI**: [the maximum depth of CPI](https://docs.solana.com/developing/programming-model/calling-between-programs) (current limit in Solana is 4)\n *\n * Safe for browser usage. Can be conveniently run with txEnvelope.simulateTable()\n */\nexport const printTXTable = (\n tx: TransactionEnvelope,\n transactionLogs: string[],\n message: string\n) => {\n if (message && message !== \"\") {\n console.log(estimateTransactionSize(tx), message);\n } else {\n console.log(\"Transaction size:\", estimateTransactionSize(tx));\n }\n\n const computeUnitLogStack: string[] = [];\n const cpiLogStack: number[] = [];\n let currentIndex = -1;\n\n transactionLogs.forEach((line) => {\n if (line.includes(\" invoke [1]\")) {\n currentIndex++;\n cpiLogStack[currentIndex] = 0;\n }\n const cpiMatch = line.match(/ invoke \\[(\\d)\\]/);\n if (cpiMatch && cpiMatch[1]) {\n const cur = cpiLogStack[currentIndex];\n cpiLogStack[currentIndex] =\n cur === undefined\n ? Number(cpiMatch[1]) - 1\n : Math.max(Number(cpiMatch[1]) - 1, cur);\n }\n\n const computeMatch = line.match(/consumed \\d* of \\d* compute units/);\n if (computeMatch && computeMatch[0]) {\n computeUnitLogStack[currentIndex] = computeMatch[0];\n }\n });\n\n const instructionTable: {\n iso: number;\n mar: number;\n cum: number;\n programId: string;\n quota: number | undefined;\n used: number | undefined;\n left: number | undefined;\n CPI: number | undefined;\n }[] = [];\n\n tx.instructions.forEach((instruction, i) => {\n const computeUnitLog = computeUnitLogStack[i];\n\n const computeUnitMatch = computeUnitLog?.match(/consumed (\\d*) of (\\d*)/);\n const [consumed, quota] = computeUnitMatch\n ?.slice(1, 3)\n .map((num) => parseInt(num, 10)) || [undefined, undefined];\n\n instructionTable.push({\n iso: isolatedInstructionSize(tx.provider, instruction),\n mar: marginalInstructionSize(\n tx.provider,\n tx.instructions.slice(0, i),\n instruction\n ),\n cum: instructionsSize(tx.provider, tx.instructions.slice(0, i + 1)),\n programId: instruction.programId.toBase58(),\n quota: quota ? quota : i === 0 ? 200000 : undefined,\n used: consumed,\n left: quota && consumed ? quota - consumed : undefined,\n CPI: cpiLogStack[i],\n });\n });\n\n console.table(instructionTable);\n};\n\nexport class TXSizeEstimationError extends Error {\n constructor(readonly underlyingError: unknown) {\n super(`could not estimate transaction size`);\n this.name = \"TXSizeEstimationError\";\n }\n}\n\nexport class EstimatedTXTooBigError extends Error {\n constructor(readonly tx: Transaction, readonly size: number) {\n super(`Transaction too large`);\n this.name = \"EstimatedTXTooBigError\";\n }\n}\n\n/**\n * Builds a transaction and estimates the size in bytes. This number is primrily\n * to be used for checking to see if a transaction is too big and instructions\n * need to be split. It may not be 100% accurate.\n *\n * This is used in expectTXTable and is useful for increasing efficiency in\n * dapps that build large transactions.\n *\n * The max transaction size of a v1 Transaction in Solana is 1232 bytes.\n * For info about Transaction v2: https://docs.solana.com/proposals/transactions-v2\n *\n * Returns 8888 if the transaction was too big.\n * Returns 9999 if the transaction was unable to be built.\n */\nexport const estimateTransactionSize = (\n txEnvelope: TransactionEnvelope\n): number => {\n const result = txEnvelope.estimateSize();\n if (\"size\" in result) {\n return result.size;\n }\n if (result.error instanceof TXSizeEstimationError) {\n console.error(\n \"Unknown error estimating transaction size\",\n result.error.underlyingError\n );\n return 9999;\n }\n return 8888;\n};\n\n/**\n * A dummy instruction that is probably tiny and has overlap with most instructions\n */\nconst simpleInstruction = () => {\n const fs = getFakeSigner();\n\n return SystemProgram.transfer({\n fromPubkey: fs.publicKey,\n toPubkey: fs.publicKey,\n lamports: 1,\n });\n};\n\nconst isolatedInstructionSize = (\n randomProvider: Provider,\n instruction: TransactionInstruction\n): number => {\n return marginalInstructionSize(\n randomProvider,\n [simpleInstruction()],\n instruction\n );\n};\nconst marginalInstructionSize = (\n randomProvider: Provider,\n previousInstructions: TransactionInstruction[],\n instruction: TransactionInstruction\n): number => {\n const previousTxSize = instructionsSize(\n randomProvider,\n previousInstructions.length ? previousInstructions : [simpleInstruction()]\n );\n\n const biggerTxSize = instructionsSize(randomProvider, [\n ...previousInstructions,\n instruction,\n ]);\n\n return biggerTxSize - previousTxSize;\n};\nconst instructionsSize = (\n randomProvider: Provider,\n instructions: TransactionInstruction[]\n): number => {\n const instructionedTx = new TransactionEnvelope(randomProvider, [\n ...instructions,\n ]);\n\n return estimateTransactionSize(instructionedTx);\n};\n\nlet fakeSigner: Signer | undefined = undefined;\nconst getFakeSigner = (): Signer => {\n if (!fakeSigner) {\n fakeSigner = Keypair.generate();\n }\n return fakeSigner;\n};\n","import type {\n Cluster,\n ConfirmOptions,\n RpcResponseAndContext,\n Signer,\n SimulatedTransactionResponse,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { PACKET_DATA_SIZE, PublicKey, Transaction } from \"@solana/web3.js\";\nimport invariant from \"tiny-invariant\";\n\nimport type { BroadcastOptions } from \"../broadcaster\";\nimport type { Provider } from \"../interfaces\";\nimport {\n EstimatedTXTooBigError,\n printTXTable,\n suppressConsoleError,\n TXSizeEstimationError,\n} from \"../utils\";\nimport type { PendingTransaction } from \"./PendingTransaction\";\nimport type { TransactionReceipt } from \"./TransactionReceipt\";\nimport { calculateTxSizeUnsafe } from \"./txSizer\";\nimport type { SerializableInstruction } from \"./utils\";\nimport { generateInspectLinkFromBase64, RECENT_BLOCKHASH_STUB } from \"./utils\";\n\nconst ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey(\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n);\n\n/**\n * Filters the required signers for a list of instructions.\n * @param ixs\n * @returns\n */\nconst filterRequiredSigners = (\n ixs: TransactionInstruction[],\n signers: Signer[]\n): Signer[] => {\n // filter out the signers required for the transaction\n const requiredSigners = ixs.flatMap((ix) =>\n ix.keys.filter((k) => k.isSigner).map((k) => k.pubkey)\n );\n return signers.filter((s) =>\n requiredSigners.find((rs) => rs.equals(s.publicKey))\n );\n};\n\n/**\n * Options for simulating a transaction.\n */\nexport interface TXEnvelopeSimulateOptions extends ConfirmOptions {\n /**\n * Verify that the signers of the TX enveloper are valid.\n */\n verifySigners?: boolean;\n}\n\n/**\n * Contains a Transaction that is being built.\n */\nexport class TransactionEnvelope {\n constructor(\n /**\n * Provider that will be sending the transaction as the fee payer.\n */\n readonly provider: Provider,\n /**\n * Instructions associated with the transaction.\n */\n readonly instructions: TransactionInstruction[],\n /**\n * Optional signers of the transaction.\n */\n readonly signers: Signer[] = []\n ) {}\n\n /**\n * Prepends the given {@link TransactionInstruction}s to the {@link TransactionEnvelope}.\n * @param instructions The instructions to prepend.\n * @returns\n */\n prepend(\n ...instructions: (TransactionInstruction | null | undefined | boolean)[]\n ): TransactionEnvelope {\n this.instructions.unshift(\n ...instructions.filter((ix): ix is TransactionInstruction => !!ix)\n );\n return this;\n }\n\n /**\n * Appends the given {@link TransactionInstruction}s to the {@link TransactionEnvelope}.\n * @param instructions The instructions to append.\n * @returns\n */\n append(\n ...instructions: (TransactionInstruction | null | undefined | boolean)[]\n ): TransactionEnvelope {\n this.instructions.push(\n ...instructions.filter((ix): ix is TransactionInstruction => !!ix)\n );\n return this;\n }\n\n /**\n * A the given {@link TransactionInstruction}s to the {@link TransactionEnvelope}.\n * @param instructions The instructions to add.\n * @deprecated Use {@link #append} instead.\n * @returns\n */\n addInstructions(\n ...instructions: (TransactionInstruction | null | undefined | boolean)[]\n ): TransactionEnvelope {\n return this.append(...instructions);\n }\n\n /**\n * Adds the given {@link Signer}s to the {@link TransactionEnvelope}.\n * @param signers The signers to add.\n * @returns\n */\n addSigners(...signers: Signer[]): TransactionEnvelope {\n this.signers.push(...signers);\n return this;\n }\n\n /**\n * Builds a transaction from this envelope.\n * @param feePayer Optional override for the fee payer.\n */\n build(feePayer: PublicKey = this.provider.wallet.publicKey): Transaction {\n const tx = new Transaction().add(...this.instructions);\n tx.feePayer = feePayer;\n return tx;\n }\n\n /**\n * Builds a transaction and estimates the size in bytes.\n * Does not check to see if the transaction is too big.\n *\n * @returns Byte count\n */\n estimateSizeUnsafe(): number {\n const builtTx = this.build();\n // dummy blockhash that is required for building the transaction\n builtTx.recentBlockhash = \"MaryHadALittLeLambZNdhAUTrsLE1ydg6rmtvFEpKT\";\n\n return calculateTxSizeUnsafe(builtTx);\n }\n\n /**\n * Builds a transaction and estimates the size in bytes. This number is primrily\n * to be used for checking to see if a transaction is too big and instructions\n * need to be split. It may not be 100% accurate.\n *\n * This is used in expectTXTable and is useful for increasing efficiency in\n * dapps that build large transactions.\n *\n * The max transaction size of a v1 Transaction in Solana is 1232 bytes.\n * For info about Transaction v2: https://docs.solana.com/proposals/transactions-v2\n */\n estimateSize():\n | { size: number }\n | {\n error: EstimatedTXTooBigError | TXSizeEstimationError;\n } {\n return suppressConsoleError(() => {\n try {\n const builtTx = this.build();\n // dummy blockhash that is required for building the transaction\n builtTx.recentBlockhash = \"MaryHadALittLeLambZNdhAUTrsLE1ydg6rmtvFEpKT\";\n\n const size = calculateTxSizeUnsafe(builtTx);\n if (size > PACKET_DATA_SIZE) {\n return { error: new EstimatedTXTooBigError(builtTx, size) };\n }\n return { size };\n } catch (e) {\n return { error: new TXSizeEstimationError(e) };\n }\n });\n }\n\n /**\n * Partition a large {@link TransactionEnvelope} into smaller, valid {@link Transaction}s.\n * This relies on this envelope already having the correct number of signers.\n *\n * @param feePayer Optional fee payer override.\n * @returns A list of {@link Transaction}s.\n */\n buildPartition(\n feePayer: PublicKey = this.provider.wallet.publicKey\n ): Transaction[] {\n const partition = this.partition();\n return partition.map((env) => env.build(feePayer));\n }\n\n /**\n * Partition a large {@link TransactionEnvelope} into smaller, valid transaction envelopes which can be built.\n * This relies on this envelope already having the correct number of signers.\n *\n * @returns\n */\n partition(): TransactionEnvelope[] {\n const estimation = this.estimateSize();\n if (\"size\" in estimation) {\n return [this];\n }\n\n // empty partition should have no envelopes\n if (this.instructions.length === 0) {\n return [];\n }\n\n let lastTXEnv: TransactionEnvelope = new TransactionEnvelope(\n this.provider,\n this.instructions.slice(0, 1),\n this._filterRequiredSigners(this.instructions.slice(0, 1))\n );\n let lastEstimation: number = lastTXEnv.estimateSizeUnsafe();\n const txs: TransactionEnvelope[] = [];\n this.instructions.slice(1).forEach((ix, i) => {\n if (lastEstimation > PACKET_DATA_SIZE) {\n throw new Error(\n `cannot construct a valid partition: instruction ${i} is too large (${lastEstimation} > ${PACKET_DATA_SIZE})`\n );\n }\n const nextIXs = [...lastTXEnv.instructions, ix];\n const nextSigners = this._filterRequiredSigners(nextIXs);\n const nextTXEnv = new TransactionEnvelope(\n this.provider,\n nextIXs,\n nextSigners\n );\n const nextEstimation = nextTXEnv.estimateSizeUnsafe();\n\n // move to next tx envelope if too big\n if (nextEstimation > PACKET_DATA_SIZE) {\n txs.push(lastTXEnv);\n const nextIXs = [ix];\n lastTXEnv = new TransactionEnvelope(\n this.provider,\n nextIXs,\n this._filterRequiredSigners(nextIXs)\n );\n lastEstimation = lastTXEnv.estimateSizeUnsafe();\n } else {\n lastTXEnv = nextTXEnv;\n lastEstimation = nextEstimation;\n }\n });\n txs.push(lastTXEnv);\n\n return txs;\n }\n\n /**\n * Filters the required signers for a list of instructions.\n * @param ixs\n * @returns\n */\n private _filterRequiredSigners(ixs: TransactionInstruction[]): Signer[] {\n return filterRequiredSigners(ixs, this.signers);\n }\n\n /**\n * Generates a link for inspecting the contents of this {@link TransactionEnvelope}.\n *\n * @returns URL\n */\n generateInspectLink(cluster: Cluster = \"mainnet-beta\"): string {\n const t = this.build();\n t.recentBlockhash = RECENT_BLOCKHASH_STUB;\n const str = t.serializeMessage().toString(\"base64\");\n return generateInspectLinkFromBase64(cluster, str);\n }\n\n /**\n * Simulates the transaction.\n * @param opts\n * @returns\n */\n simulate(\n opts: TXEnvelopeSimulateOptions = {\n verifySigners: true,\n }\n ): Promise> {\n return this.provider.simulate(\n this.build(),\n opts.verifySigners ? this.signers : undefined,\n opts\n );\n }\n\n /**\n * Simulates the transaction, without validating signers.\n *\n * @deprecated Use {@link TXEnvelope#simulate} instead.\n * @param opts\n * @returns\n */\n simulateUnchecked(\n opts: ConfirmOptions\n ): Promise> {\n return this.simulate({ ...opts, verifySigners: false });\n }\n\n /**\n * Simulates the transaction and prints a fancy table in the console.\n * ```\n * ┌─────┬───┬───┬───┬───────────┬──────┬─────┬──────┬───┐\n * │index│iso│mar│cum│ programId │quota │used │ left │CPI│\n * ├─────┼───┼───┼───┼───────────┼──────┼─────┼──────┼───┤\n * │ 0 │298│281│464│'ATokenG..'│200000│24270│175730│ 1 │\n * │ 1 │298│ 74│538│'ATokenG..'│178730│21270│157460│ 1 │\n * │ 2 │298│ 74│612│'ATokenG..'│157460│27277│130183│ 1 │\n * │ 3 │298│ 42│686│'ATokenG..'│130183│21270│108913│ 1 │\n * │ 4 │338│265│951│'qExampL..'│108913│76289│ 32624│ 3 │\n * └─────┴───┴───┴───┴───────────┴──────┴─────┴──────┴───┘\n * ```\n *\n * - **index**: the array index of the instruction within the transaction\n * - **iso**: the isolated size of the instruction (marginal cost of only the instruction)\n * - **mar**: the marginal size cost of the instruction (when added to previous)\n * - **cum**: the cumulative size of the instructions up until that instruction\n * - **quota/used/left**: [BPF instruction compute unit info](https://docs.solana.com/developing/programming-model/runtime)\n * - **CPI**: [the maximum depth of CPI](https://docs.solana.com/developing/programming-model/calling-between-programs) (current limit in Solana is 4)\n *\n * @param opts\n * @returns\n */\n simulateTable(\n opts?: TXEnvelopeSimulateOptions\n ): Promise> {\n return this.simulate(opts).then((simulation) => {\n if (simulation?.value?.logs) {\n printTXTable(this, simulation.value.logs, \"\");\n }\n return simulation;\n });\n }\n\n /**\n * Sends the transaction without confirming it.\n * @param opts\n * @returns\n */\n async send(opts?: BroadcastOptions): Promise {\n const signed = await this.provider.signer.sign(\n this.build(),\n this.signers,\n opts\n );\n return this.provider.broadcaster.broadcast(signed, opts);\n }\n\n /**\n * Sends the transaction and waits for confirmation.\n * @param opts\n */\n async confirm(opts?: BroadcastOptions): Promise {\n return (await this.send(opts)).wait();\n }\n\n /**\n * Combines the instructions/signers of the other envelope to create one large transaction.\n */\n combine(other: TransactionEnvelope): TransactionEnvelope {\n return new TransactionEnvelope(\n this.provider,\n [...this.instructions, ...other.instructions],\n [...this.signers, ...other.signers]\n );\n }\n\n /**\n * Get a list of all writable accounts, deduped\n * All of these accounts likely need to be updated after the transaction is confirmed.\n */\n get writableKeys(): PublicKey[] {\n return [\n ...new Set([\n ...this.instructions\n .map((inst) =>\n inst.keys.filter((key) => key.isWritable).map((k) => k.pubkey)\n )\n .reduce((acc, el) => acc.concat(el)),\n ]).values(),\n ];\n }\n\n /**\n * Gets the instructions in a format that can be serialized easily to JSON.\n */\n get instructionsJSON(): SerializableInstruction[] {\n return this.instructions.map((instruction) => ({\n programId: instruction.programId.toString(),\n keys: instruction.keys.map((m) => ({\n isSigner: m.isSigner,\n isWritable: m.isWritable,\n publicKey: m.pubkey.toString(),\n })),\n data: instruction.data.toString(\"base64\"),\n }));\n }\n\n /**\n * Returns a string representation of the {@link TransactionEnvelope}.\n */\n get debugStr(): string {\n return [\n \"=> Instructions\",\n this.instructions\n .map((ser, i) => {\n return [\n `Instruction ${i}: ${ser.programId.toString()}`,\n ...ser.keys.map(\n (k, i) =>\n ` [${i}] ${k.pubkey.toString()} ${\n k.isWritable ? \"(mut)\" : \"\"\n } ${k.isSigner ? \"(signer)\" : \"\"}`\n ),\n ` Data (base64): ${ser.data.toString(\"base64\")}`,\n ].join(\"\\n\");\n })\n .join(\"\\n\"),\n \"=> Signers\",\n this.signers.map((sg) => sg.publicKey.toString()).join(\"\\n\"),\n ].join(\"\\n\");\n }\n\n /**\n * Creates a new {@link TransactionEnvelope}.\n * @param provider\n * @param instructions\n * @param signers\n * @returns\n */\n static create(\n provider: Provider,\n instructions: (TransactionInstruction | null | undefined | boolean)[],\n signers: Signer[] = []\n ): TransactionEnvelope {\n const ixs = instructions.filter((ix): ix is TransactionInstruction => !!ix);\n return new TransactionEnvelope(provider, ixs, signers);\n }\n\n /**\n * Combines multiple TransactionEnvelopes into one.\n */\n static combineAll(...txs: TransactionEnvelope[]): TransactionEnvelope {\n return txs.reduce((acc, tx) => acc.combine(tx));\n }\n\n /**\n * Takes a list of {@link TransactionEnvelope}s and combines them if they\n * are able to be combined under the maximum TX size limit.\n *\n * @param txs\n * @returns\n */\n static pack(...txs: readonly TransactionEnvelope[]): TransactionEnvelope[] {\n if (txs.length === 0) {\n return [];\n }\n const [first, ...rest] = txs;\n invariant(first);\n\n const { provider } = first;\n\n let lastTXEnv: TransactionEnvelope = first;\n let lastEstimation: number = lastTXEnv.estimateSizeUnsafe();\n const partition: TransactionEnvelope[] = [];\n\n rest.forEach((addedTX, i) => {\n if (lastEstimation > PACKET_DATA_SIZE) {\n throw new Error(\n `cannot construct a valid partition: instruction ${i} is too large (${lastEstimation} > ${PACKET_DATA_SIZE})`\n );\n }\n const nextIXs = [...lastTXEnv.instructions, ...addedTX.instructions];\n const nextSigners = filterRequiredSigners(nextIXs, [\n ...lastTXEnv.signers,\n ...addedTX.signers,\n ]);\n const nextTXEnv = new TransactionEnvelope(provider, nextIXs, nextSigners);\n const nextEstimation = nextTXEnv.estimateSizeUnsafe();\n\n // move to next tx envelope if too big\n if (nextEstimation > PACKET_DATA_SIZE) {\n partition.push(lastTXEnv);\n lastTXEnv = addedTX;\n lastEstimation = lastTXEnv.estimateSizeUnsafe();\n } else {\n lastTXEnv = nextTXEnv;\n lastEstimation = nextEstimation;\n }\n });\n partition.push(lastTXEnv);\n\n return partition;\n }\n\n /**\n * Combines multiple async TransactionEnvelopes into one, serially.\n */\n static async combineAllAsync(\n firstTX: Promise,\n ...txs: Promise[]\n ): Promise {\n let acc: TransactionEnvelope = await firstTX;\n for (const tx of txs) {\n acc = acc.combine(await tx);\n }\n return acc;\n }\n\n /**\n * Sends all of the envelopes.\n * @returns Pending transactions\n */\n static async sendAll(\n txs: TransactionEnvelope[],\n opts?: ConfirmOptions\n ): Promise {\n const firstTX = txs[0];\n if (!firstTX) {\n return [];\n }\n const provider = firstTX.provider;\n return await provider.sendAll(\n txs.map((tx) => ({ tx: tx.build(), signers: tx.signers })),\n opts\n );\n }\n\n /**\n * Deduplicate ATA instructions inside the transaction envelope.\n */\n dedupeATAIXs(): TransactionEnvelope {\n if (this.instructions.length === 0) {\n return this;\n }\n\n const seenATAs = new Set();\n const instructions = this.instructions\n .map((ix) => {\n const programId = ix.programId;\n if (programId.equals(ASSOCIATED_TOKEN_PROGRAM_ID)) {\n const ataKey = ix.keys[1]?.pubkey.toString();\n if (!ataKey) {\n throw new Error(\"ATA key does not exist on ATA instruction\");\n }\n if (seenATAs.has(ataKey)) {\n return null;\n }\n seenATAs.add(ataKey);\n }\n return ix;\n })\n .filter((ix): ix is TransactionInstruction => !!ix);\n return new TransactionEnvelope(this.provider, instructions, this.signers);\n }\n\n /**\n * Get an instruction from the transaction envelope by index.\n */\n getInstruction(index: number): TransactionInstruction {\n const ix = this.instructions[index];\n if (!ix) {\n throw new Error(`No instruction found at index ${index}`);\n }\n return ix;\n }\n}\n","import type { Transaction } from \"@solana/web3.js\";\n\nfunction shortvecEncodeLength(bytes: Array, len: number) {\n let rem_len = len;\n for (;;) {\n let elem = rem_len & 0x7f;\n rem_len >>= 7;\n if (rem_len === 0) {\n bytes.push(elem);\n break;\n } else {\n elem |= 0x80;\n bytes.push(elem);\n }\n }\n}\n\n/**\n * Calculates transaction size. If the transaction is too large, it does not throw.\n * @param tx\n * @returns\n */\nexport const calculateTxSizeUnsafe = (tx: Transaction): number => {\n // check if fee payer signed.\n const { feePayer } = tx;\n const hasFeePayerSigned =\n feePayer && tx.signatures.find((s) => s.publicKey.equals(feePayer));\n const signData = tx.serializeMessage();\n const numSigners = tx.signatures.length + (hasFeePayerSigned ? 1 : 0);\n const signatureCount: number[] = [];\n shortvecEncodeLength(signatureCount, numSigners);\n return signatureCount.length + numSigners * 64 + signData.length;\n};\n","import type {\n Commitment,\n ConfirmOptions,\n Connection,\n KeyedAccountInfo,\n PublicKey,\n RpcResponseAndContext,\n Signer,\n SimulatedTransactionResponse,\n Transaction,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { SystemProgram } from \"@solana/web3.js\";\n\nimport type { Broadcaster, ReadonlyProvider } from \".\";\nimport {\n MultipleConnectionBroadcaster,\n PendingTransaction,\n SignerWallet,\n} from \".\";\nimport { SingleConnectionBroadcaster } from \"./broadcaster\";\nimport type {\n Provider,\n SendTxRequest,\n TransactionSigner,\n Wallet,\n} from \"./interfaces\";\nimport { TransactionEnvelope } from \"./transaction/TransactionEnvelope\";\n\nexport const DEFAULT_PROVIDER_OPTIONS: ConfirmOptions = {\n preflightCommitment: \"processed\",\n commitment: \"processed\",\n};\n\nexport const DEFAULT_READONLY_PUBLIC_KEY: PublicKey = SystemProgram.programId;\n\n/**\n * Provider that can only read.\n */\nexport class SolanaReadonlyProvider implements ReadonlyProvider {\n /**\n * @param connection The cluster connection where the program is deployed.\n * @param opts Transaction confirmation options to use by default.\n * @param publicKey Optional public key of read-only wallet.\n */\n constructor(\n readonly connection: Connection,\n readonly opts: ConfirmOptions = DEFAULT_PROVIDER_OPTIONS,\n readonly publicKey: PublicKey = DEFAULT_READONLY_PUBLIC_KEY\n ) {\n this.wallet = {\n ...this.wallet,\n publicKey,\n };\n }\n\n wallet: Wallet = {\n signTransaction: Promise.resolve.bind(Promise),\n signAllTransactions: Promise.resolve.bind(Promise),\n publicKey: DEFAULT_READONLY_PUBLIC_KEY,\n };\n\n /**\n * Gets\n * @param accountId\n * @returns\n */\n async getAccountInfo(accountId: PublicKey): Promise {\n const accountInfo = await this.connection.getAccountInfo(\n accountId,\n this.opts.commitment\n );\n if (!accountInfo) {\n return null;\n }\n return {\n accountId,\n accountInfo,\n };\n }\n}\n\n/**\n * Signs Solana transactions.\n */\nexport class SolanaTransactionSigner implements TransactionSigner {\n constructor(\n readonly wallet: Wallet,\n readonly broadcaster: Broadcaster,\n readonly preflightCommitment: Commitment = \"processed\"\n ) {}\n\n get publicKey(): PublicKey {\n return this.wallet.publicKey;\n }\n\n /**\n * Sends the given transaction, paid for and signed by the provider's wallet.\n *\n * @param tx The transaction to send.\n * @param signers The set of signers in addition to the provdier wallet that\n * will sign the transaction.\n * @param opts Transaction confirmation options.\n */\n async sign(\n tx: Transaction,\n signers: readonly (Signer | undefined)[] = [],\n opts: ConfirmOptions = {\n preflightCommitment: this.preflightCommitment,\n }\n ): Promise {\n tx.feePayer = this.wallet.publicKey;\n tx.recentBlockhash = await this.broadcaster.getRecentBlockhash(\n opts.preflightCommitment\n );\n\n await this.wallet.signTransaction(tx);\n signers\n .filter((s): s is Signer => s !== undefined)\n .forEach((kp) => {\n tx.partialSign(kp);\n });\n\n return tx;\n }\n\n /**\n * Similar to `send`, but for an array of transactions and signers.\n */\n async signAll(\n reqs: readonly SendTxRequest[],\n opts: ConfirmOptions = {\n preflightCommitment: this.preflightCommitment,\n }\n ): Promise {\n const blockhash = await this.broadcaster.getRecentBlockhash(\n opts.preflightCommitment\n );\n\n const txs = reqs.map((r) => {\n const tx = r.tx;\n let signers = r.signers;\n\n if (signers === undefined) {\n signers = [];\n }\n\n tx.feePayer = this.wallet.publicKey;\n tx.recentBlockhash = blockhash;\n\n signers\n .filter((s): s is Signer => s !== undefined)\n .forEach((kp) => {\n tx.partialSign(kp);\n });\n\n return tx;\n });\n\n const signedTxs = await this.wallet.signAllTransactions(txs);\n return signedTxs;\n }\n}\n\n/**\n * The network and wallet context used to send transactions paid for and signed\n * by the provider.\n *\n * This implementation was taken from Anchor.\n */\nexport class SolanaProvider extends SolanaReadonlyProvider implements Provider {\n readonly signer: TransactionSigner;\n\n /**\n * @param connection The cluster connection where the program is deployed.\n * @param sendConnection The connection where transactions are sent to.\n * @param wallet The wallet used to pay for and sign all transactions.\n * @param opts Transaction confirmation options to use by default.\n */\n constructor(\n override readonly connection: Connection,\n readonly broadcaster: Broadcaster,\n override readonly wallet: Wallet,\n override readonly opts: ConfirmOptions = DEFAULT_PROVIDER_OPTIONS\n ) {\n super(connection, opts);\n this.signer = new SolanaTransactionSigner(\n wallet,\n broadcaster,\n opts.preflightCommitment\n );\n }\n\n /**\n * Creates a new SolanaProvider.\n * @deprecated use {@link SolanaProvider.init}\n */\n static load({\n connection,\n sendConnection = connection,\n wallet,\n opts,\n }: {\n /**\n * Connection used for general reads\n */\n connection: Connection;\n /**\n * Connection used for sending transactions\n */\n sendConnection?: Connection;\n /**\n * Wallet used for signing transactions\n */\n wallet: Wallet;\n /**\n * Confirmation options\n */\n opts?: ConfirmOptions;\n }): SolanaProvider {\n return new SolanaProvider(\n connection,\n new SingleConnectionBroadcaster(sendConnection, opts),\n wallet,\n opts\n );\n }\n\n /**\n * Initializes a new SolanaProvider.\n */\n static init({\n connection,\n broadcastConnections = [connection],\n wallet,\n opts = DEFAULT_PROVIDER_OPTIONS,\n }: {\n /**\n * Connection used for general reads\n */\n readonly connection: Connection;\n /**\n * Connections used for broadcasting transactions. Defaults to the read connection.\n */\n readonly broadcastConnections?: readonly Connection[];\n /**\n * Wallet used for signing transactions\n */\n readonly wallet: Wallet;\n /**\n * Confirmation options\n */\n readonly opts?: ConfirmOptions;\n }): SolanaProvider {\n return new SolanaProvider(\n connection,\n new MultipleConnectionBroadcaster(broadcastConnections, opts),\n wallet,\n opts\n );\n }\n\n /**\n * Sends the given transaction, paid for and signed by the provider's wallet.\n *\n * @param tx The transaction to send.\n * @param signers The set of signers in addition to the provdier wallet that\n * will sign the transaction.\n * @param opts Transaction confirmation options.\n */\n async send(\n tx: Transaction,\n signers: (Signer | undefined)[] = [],\n opts: ConfirmOptions = this.opts\n ): Promise {\n const theTx = await this.signer.sign(tx, signers, opts);\n const pending = await this.broadcaster.broadcast(theTx, opts);\n await pending.wait();\n return pending;\n }\n\n /**\n * Similar to `send`, but for an array of transactions and signers.\n */\n async sendAll(\n reqs: readonly SendTxRequest[],\n opts: ConfirmOptions = this.opts\n ): Promise {\n const txs = await this.signer.signAll(reqs, opts);\n return await Promise.all(\n txs.map(async (tx) => {\n const pending = await this.broadcaster.broadcast(tx, opts);\n await pending.wait();\n return pending;\n })\n );\n }\n\n /**\n * Simulates the given transaction, returning emitted logs from execution.\n *\n * @param tx The transaction to send.\n * @param signers The set of signers in addition to the provider wallet that\n * will sign the transaction. If specified, the provider will\n * sign the transaction.\n * @param opts Transaction confirmation options.\n */\n async simulate(\n tx: Transaction,\n signers: (Signer | undefined)[] | undefined,\n opts: ConfirmOptions = this.opts\n ): Promise> {\n let simTX = tx;\n if (signers !== undefined) {\n simTX = await this.signer.sign(tx, signers, opts);\n }\n return await this.broadcaster.simulate(simTX, {\n verifySigners: signers !== undefined,\n commitment: opts.commitment,\n });\n }\n}\n\n/**\n * Provider with utility functions.\n */\nexport interface AugmentedProvider extends Provider {\n /**\n * Gets the {@link PublicKey} of the wallet.\n */\n get walletKey(): PublicKey;\n\n /**\n * Creates a new transaction using this Provider.\n * @param instructions\n * @param signers\n * @returns\n */\n newTX: (\n instructions?: (TransactionInstruction | null | undefined | boolean)[],\n signers?: Signer[]\n ) => TransactionEnvelope;\n\n /**\n * Requests an airdrop of tokens.\n * @param lamports Number of lamports.\n * @returns\n */\n requestAirdrop: (lamports: number) => Promise;\n\n /**\n * Returns this provider with a different signer.\n * @param signer\n * @returns\n */\n withSigner: (signer: Signer) => AugmentedProvider;\n}\n\n/**\n * Wrapper for a Provider containing utility functions.\n */\nexport class SolanaAugmentedProvider implements AugmentedProvider {\n constructor(readonly provider: Provider) {}\n\n get walletKey(): PublicKey {\n return this.provider.wallet.publicKey;\n }\n\n get connection(): Connection {\n return this.provider.connection;\n }\n\n get signer(): TransactionSigner {\n return this.provider.signer;\n }\n\n get broadcaster(): Broadcaster {\n return this.provider.broadcaster;\n }\n\n get opts(): ConfirmOptions {\n return this.provider.opts;\n }\n\n get wallet(): Wallet {\n return this.provider.wallet;\n }\n\n send(\n tx: Transaction,\n signers?: (Signer | undefined)[] | undefined,\n opts?: ConfirmOptions | undefined\n ): Promise {\n return this.provider.send(tx, signers, opts);\n }\n\n sendAll(\n reqs: readonly SendTxRequest[],\n opts?: ConfirmOptions | undefined\n ): Promise {\n return this.provider.sendAll(reqs, opts);\n }\n\n simulate(\n tx: Transaction,\n signers?: (Signer | undefined)[] | undefined,\n opts?: ConfirmOptions | undefined\n ): Promise> {\n return this.provider.simulate(tx, signers, opts);\n }\n\n getAccountInfo(accountId: PublicKey): Promise {\n return this.provider.getAccountInfo(accountId);\n }\n\n /**\n * Creates a new transaction using this Provider.\n * @param instructions\n * @param signers\n * @returns\n */\n newTX(\n instructions: (TransactionInstruction | null | undefined | boolean)[] = [],\n signers: Signer[] = []\n ): TransactionEnvelope {\n return TransactionEnvelope.create(this, instructions, signers);\n }\n\n /**\n * Requests an airdrop of tokens.\n * @param amount\n * @returns\n */\n async requestAirdrop(\n lamports: number,\n to: PublicKey = this.wallet.publicKey\n ): Promise {\n return new PendingTransaction(\n this.connection,\n await this.connection.requestAirdrop(to, lamports)\n );\n }\n\n /**\n * Returns this provider with a different signer.\n * @param signer\n * @returns\n */\n withSigner(signer: Signer): SolanaAugmentedProvider {\n return new SolanaAugmentedProvider(\n new SolanaProvider(\n this.connection,\n this.broadcaster,\n new SignerWallet(signer),\n this.opts\n )\n );\n }\n}\n","/**\n * Borrowed from explorer.solana.com code written by @jstarry.\n */\n\nimport type { TransactionError } from \"@solana/web3.js\";\n\n/**\n * Solana error messages built-in.\n */\nexport const BUILTIN_SOLANA_ERROR_MESSAGES: Map = new Map([\n [\"GenericError\", \"generic instruction error\"],\n [\"InvalidArgument\", \"invalid program argument\"],\n [\"InvalidInstructionData\", \"invalid instruction data\"],\n [\"InvalidAccountData\", \"invalid account data for instruction\"],\n [\"AccountDataTooSmall\", \"account data too small for instruction\"],\n [\"InsufficientFunds\", \"insufficient funds for instruction\"],\n [\"IncorrectProgramId\", \"incorrect program id for instruction\"],\n [\"MissingRequiredSignature\", \"missing required signature for instruction\"],\n [\n \"AccountAlreadyInitialized\",\n \"instruction requires an uninitialized account\",\n ],\n [\"UninitializedAccount\", \"instruction requires an initialized account\"],\n [\n \"UnbalancedInstruction\",\n \"sum of account balances before and after instruction do not match\",\n ],\n [\"ModifiedProgramId\", \"instruction modified the program id of an account\"],\n [\n \"ExternalAccountLamportSpend\",\n \"instruction spent from the balance of an account it does not own\",\n ],\n [\n \"ExternalAccountDataModified\",\n \"instruction modified data of an account it does not own\",\n ],\n [\n \"ReadonlyLamportChange\",\n \"instruction changed the balance of a read-only account\",\n ],\n [\"ReadonlyDataModified\", \"instruction modified data of a read-only account\"],\n [\"DuplicateAccountIndex\", \"instruction contains duplicate accounts\"],\n [\"ExecutableModified\", \"instruction changed executable bit of an account\"],\n [\"RentEpochModified\", \"instruction modified rent epoch of an account\"],\n [\"NotEnoughAccountKeys\", \"insufficient account keys for instruction\"],\n [\"AccountDataSizeChanged\", \"non-system instruction changed account size\"],\n [\"AccountNotExecutable\", \"instruction expected an executable account\"],\n [\n \"AccountBorrowFailed\",\n \"instruction tries to borrow reference for an account which is already borrowed\",\n ],\n [\n \"AccountBorrowOutstanding\",\n \"instruction left account with an outstanding borrowed reference\",\n ],\n [\n \"DuplicateAccountOutOfSync\",\n \"instruction modifications of multiply-passed account differ\",\n ],\n [\"Custom\", \"custom program error: {0}\"],\n [\"InvalidError\", \"program returned invalid error code\"],\n [\"ExecutableDataModified\", \"instruction changed executable accounts data\"],\n [\n \"ExecutableLamportChange\",\n \"instruction changed the balance of a executable account\",\n ],\n [\"ExecutableAccountNotRentExempt\", \"executable accounts must be rent exempt\"],\n [\"UnsupportedProgramId\", \"Unsupported program id\"],\n [\"CallDepth\", \"Cross-program invocation call depth too deep\"],\n [\"MissingAccount\", \"An account required by the instruction is missing\"],\n [\n \"ReentrancyNotAllowed\",\n \"Cross-program invocation reentrancy not allowed for this instruction\",\n ],\n [\n \"MaxSeedLengthExceeded\",\n \"Length of the seed is too long for address generation\",\n ],\n [\"InvalidSeeds\", \"Provided seeds do not result in a valid address\"],\n [\"InvalidRealloc\", \"Failed to reallocate account data\"],\n [\"ComputationalBudgetExceeded\", \"Computational budget exceeded\"],\n [\n \"PrivilegeEscalation\",\n \"Cross-program invocation with unauthorized signer or writable account\",\n ],\n [\n \"ProgramEnvironmentSetupFailure\",\n \"Failed to create program execution environment\",\n ],\n [\"ProgramFailedToComplete\", \"Program failed to complete\"],\n [\"ProgramFailedToCompile\", \"Program failed to compile\"],\n [\"Immutable\", \"Account is immutable\"],\n [\"IncorrectAuthority\", \"Incorrect authority provided\"],\n [\"BorshIoError\", \"Failed to serialize or deserialize account data: {0}\"],\n [\n \"AccountNotRentExempt\",\n \"An account does not have enough lamports to be rent-exempt\",\n ],\n [\"InvalidAccountOwner\", \"Invalid account owner\"],\n [\"ArithmeticOverflow\", \"Program arithmetic overflowed\"],\n [\"UnsupportedSysvar\", \"Unsupported sysvar\"],\n [\"IllegalOwner\", \"Provided owner is not allowed\"],\n]);\n\nexport type ProgramError = {\n index: number;\n message: string;\n};\n\nexport function getTransactionInstructionError(\n error?: TransactionError | null\n): ProgramError | undefined {\n if (!error) {\n return;\n }\n\n if (typeof error === \"object\" && \"InstructionError\" in error) {\n const innerError = error[\"InstructionError\"];\n const index = innerError[0] as number;\n const instructionError = innerError[1];\n\n return {\n index,\n message: getInstructionError(instructionError),\n };\n }\n}\n\nfunction getInstructionError(error: unknown): string {\n let out;\n let value: string | null = null;\n\n if (typeof error === \"string\") {\n const message = BUILTIN_SOLANA_ERROR_MESSAGES.get(error);\n if (message) {\n return message;\n }\n } else if (\"Custom\" in (error as Record)) {\n out = BUILTIN_SOLANA_ERROR_MESSAGES.get(\"Custom\");\n value = (error as { Custom: string })[\"Custom\"];\n } else if (\"BorshIoError\" in (error as Record)) {\n out = BUILTIN_SOLANA_ERROR_MESSAGES.get(\"BorshIoError\");\n value = (error as { BorshIoError: string })[\"BorshIoError\"];\n }\n\n if (out && value) {\n return out.replace(\"{0}\", value);\n }\n\n return \"Unknown instruction error\";\n}\n","/**\n * Adapted from explorer.solana.com code written by @jstarry.\n */\n\nimport type { TransactionError } from \"@solana/web3.js\";\nimport invariant from \"tiny-invariant\";\n\nimport { getTransactionInstructionError } from \"./programErr\";\n\n/**\n * A log entry.\n */\nexport type InstructionLogEntry = {\n /**\n * Stack depth.\n */\n depth: number;\n} & (\n | {\n type: \"text\";\n text: string;\n }\n | {\n type: \"system\";\n text: string;\n }\n | {\n type: \"cpi\";\n programAddress: string | null;\n }\n | {\n type: \"success\";\n }\n | {\n type: \"programError\";\n text: string;\n }\n | {\n type: \"runtimeError\";\n text: string;\n }\n);\n\n/**\n * Logs of an individual instruction.\n */\nexport interface InstructionLogs {\n /**\n * The program invoked, if it exists in the logs.\n */\n programAddress?: string;\n /**\n * Logs of the instruction.\n */\n logs: InstructionLogEntry[];\n /**\n * Whether the instruction failed.\n */\n failed: boolean;\n}\n\n/**\n * Stack-aware program log parser.\n * @param logs\n * @param error\n * @returns\n */\nexport const parseTransactionLogs = (\n logs: string[] | null,\n error: TransactionError | null\n): InstructionLogs[] => {\n let depth = 0;\n const prettyLogs: InstructionLogs[] = [];\n\n let prettyError;\n if (!logs) {\n if (error) throw new Error(JSON.stringify(error));\n throw new Error(\"No logs detected\");\n } else if (error) {\n prettyError = getTransactionInstructionError(error);\n }\n\n logs.forEach((log) => {\n if (log.startsWith(\"Program log:\")) {\n prettyLogs[prettyLogs.length - 1]?.logs.push({\n type: \"text\",\n depth,\n text: log,\n });\n } else {\n const regex = /Program (\\w*) invoke \\[(\\d)\\]/g;\n const matches = [...log.matchAll(regex)];\n\n if (matches.length > 0) {\n const programAddress = matches[0]?.[1];\n invariant(programAddress, \"program address\");\n\n if (depth === 0) {\n prettyLogs.push({\n programAddress,\n logs: [],\n failed: false,\n });\n } else {\n prettyLogs[prettyLogs.length - 1]?.logs.push({\n type: \"cpi\",\n depth,\n programAddress: programAddress ?? null,\n });\n }\n\n depth++;\n } else if (log.includes(\"success\")) {\n prettyLogs[prettyLogs.length - 1]?.logs.push({\n type: \"success\",\n depth,\n });\n depth--;\n } else if (log.includes(\"failed\")) {\n const instructionLog = prettyLogs[prettyLogs.length - 1];\n if (instructionLog && !instructionLog.failed) {\n instructionLog.failed = true;\n instructionLog.logs.push({\n type: \"programError\",\n depth,\n text: log.slice(log.indexOf(\": \") + 2),\n });\n }\n depth--;\n } else {\n if (depth === 0) {\n prettyLogs.push({\n logs: [],\n failed: false,\n });\n depth++;\n }\n // system transactions don't start with \"Program log:\"\n prettyLogs[prettyLogs.length - 1]?.logs.push({\n type: \"system\",\n depth,\n text: log,\n });\n }\n }\n });\n\n // If the instruction's simulation returned an error without any logs then add an empty log entry for Runtime error\n // For example BpfUpgradableLoader fails without returning any logs for Upgrade instruction with buffer that doesn't exist\n if (prettyError && prettyLogs.length === 0) {\n prettyLogs.push({\n logs: [],\n failed: true,\n });\n }\n\n if (prettyError && prettyError.index === prettyLogs.length - 1) {\n const failedIx = prettyLogs[prettyError.index];\n if (failedIx) {\n failedIx.failed = true;\n failedIx.logs.push({\n type: \"runtimeError\",\n depth: 1,\n text: prettyError.message,\n });\n }\n }\n\n return prettyLogs;\n};\n\nconst buildPrefix = (depth: number) => {\n const prefix = new Array(depth - 1).fill(\"\\u00A0\\u00A0\").join(\"\");\n return prefix + \"> \";\n};\n\nconst formatLogEntryString = (entry: InstructionLogEntry) => {\n switch (entry.type) {\n case \"success\":\n return `Program returned success`;\n case \"programError\":\n return `Program returned error: ${entry.text}`;\n case \"runtimeError\":\n return `Runtime error: ${entry.text}`;\n case \"system\":\n return entry.text;\n case \"text\":\n return entry.text;\n case \"cpi\":\n return `Invoking Unknown ${\n entry.programAddress ? `(${entry.programAddress}) ` : \"\"\n }Program`;\n }\n};\n\n/**\n * Formats a log entry to be printed out.\n * @param entry\n * @param prefix\n * @returns\n */\nexport const formatLogEntry = (\n entry: InstructionLogEntry,\n prefix = false\n): string => {\n const prefixString = prefix ? buildPrefix(entry.depth) : \"\";\n return `${prefixString}${formatLogEntryString(entry)}`;\n};\n\n/**\n * Formats instruction logs.\n * @param logs\n */\nexport const formatInstructionLogs = (\n logs: readonly InstructionLogs[]\n): string =>\n logs\n .map((log, i) => {\n return [\n `=> Instruction #${i}: ${\n log.programAddress ? `Program ${log.programAddress}` : \"System\"\n }`,\n ...log.logs.map((entry) => formatLogEntry(entry, true)),\n ].join(\"\\n\");\n })\n .join(\"\\n\");\n","import type {\n Connection,\n Finality,\n TransactionSignature,\n} from \"@solana/web3.js\";\nimport promiseRetry from \"promise-retry\";\nimport type { OperationOptions } from \"retry\";\n\nimport { TransactionReceipt } from \"../transaction\";\n\n/**\n * Options for awaiting a transaction confirmation.\n */\nexport interface TransactionWaitOptions extends OperationOptions {\n /**\n * Commitment of the transaction. Defaults to `confirmed`.\n */\n readonly commitment?: Finality;\n /**\n * Whether or not to use websockets for awaiting confirmation. Defaults to `false`.\n */\n readonly useWebsocket?: boolean;\n}\n\n/**\n * Transaction which may or may not be confirmed.\n */\nexport class PendingTransaction {\n private _receipt: TransactionReceipt | null = null;\n\n constructor(\n readonly connection: Connection,\n readonly signature: TransactionSignature\n ) {}\n\n /**\n * Gets the transaction receipt, if it has already been fetched.\n *\n * You probably want the async version of this function, `wait`.\n */\n get receipt(): TransactionReceipt | null {\n return this._receipt;\n }\n\n /**\n * Waits for the confirmation of the transaction, via polling.\n * @returns\n */\n async wait({\n commitment = \"confirmed\",\n useWebsocket = false,\n ...retryOpts\n }: TransactionWaitOptions = {}): Promise {\n if (this._receipt) {\n return this._receipt;\n }\n if (useWebsocket) {\n await this.awaitSignatureConfirmation(commitment);\n return await this.pollForReceipt({ commitment });\n }\n return await this.pollForReceipt({ commitment, ...retryOpts });\n }\n\n /**\n * Fetches the TransactionReceipt via polling.\n * @returns\n */\n async pollForReceipt({\n commitment = \"confirmed\",\n ...retryOpts\n }: Omit<\n TransactionWaitOptions,\n \"useWebsocket\"\n > = {}): Promise {\n const receipt = await promiseRetry(\n async (retry) => {\n const result = await this.connection.getTransaction(this.signature, {\n commitment,\n });\n if (!result) {\n retry(new Error(\"Error fetching transaction\"));\n return;\n }\n return new TransactionReceipt(this.signature, result);\n },\n {\n retries: 5,\n minTimeout: 500,\n ...retryOpts,\n }\n );\n if (!receipt) {\n throw new Error(\"transaction could not be confirmed\");\n }\n this._receipt = receipt;\n return receipt;\n }\n\n /**\n * Awaits the confirmation of the transaction, via onSignature subscription.\n * @returns\n */\n async awaitSignatureConfirmation(\n commitment: Finality = \"confirmed\"\n ): Promise {\n const { value } = await this.connection.confirmTransaction(\n this.signature,\n commitment\n );\n if (value.err) {\n throw value.err;\n }\n return this.signature;\n }\n}\n","import type {\n TransactionResponse,\n TransactionSignature,\n} from \"@solana/web3.js\";\nimport invariant from \"tiny-invariant\";\n\nimport type { Event, EventParser } from \"../interfaces\";\n\n/**\n * A transaction that has been processed by the cluster.\n */\nexport class TransactionReceipt {\n constructor(\n /**\n * Signature (id) of the transaction.\n */\n readonly signature: TransactionSignature,\n /**\n * Raw response from web3.js\n */\n readonly response: TransactionResponse\n ) {}\n\n /**\n * Gets the events associated with this transaction.\n */\n getEvents(eventParser: EventParser): readonly E[] {\n const logs = this.response.meta?.logMessages;\n if (logs && logs.length > 0) {\n return eventParser(logs);\n }\n return [];\n }\n\n /**\n * Prints the logs associated with this transaction.\n */\n printLogs(): void {\n console.log(this.response.meta?.logMessages?.join(\"\\n\"));\n }\n\n /**\n * Gets the compute units used by the transaction.\n * @returns\n */\n get computeUnits(): number {\n const logs = this.response.meta?.logMessages;\n invariant(logs, \"no logs\");\n const consumeLog = logs[logs.length - 2];\n invariant(consumeLog, \"no consume log\");\n const amtStr = consumeLog.split(\" \")[3];\n invariant(amtStr, \"no amount\");\n return parseInt(amtStr);\n }\n}\n","import { Provider as AnchorProvider } from \"@project-serum/anchor\";\nimport type {\n Provider as SaberProvider,\n ReadonlyProvider as ReadonlySaberProvider,\n} from \"@saberhq/solana-contrib\";\nimport { SolanaProvider } from \"@saberhq/solana-contrib\";\n\n/**\n * Creates a readonly Saber Provider from an Anchor provider.\n * @param anchorProvider The Anchor provider.\n * @returns\n */\nexport const makeReadonlySaberProvider = (\n anchorProvider: AnchorProvider\n): ReadonlySaberProvider => {\n return SolanaProvider.load({\n connection: anchorProvider.connection,\n wallet: anchorProvider.wallet,\n opts: anchorProvider.opts,\n });\n};\n\n/**\n * Creates a Saber Provider from an Anchor provider.\n * @param anchorProvider The Anchor provider.\n * @returns\n */\nexport const makeSaberProvider = (\n anchorProvider: AnchorProvider\n): SaberProvider => {\n return SolanaProvider.load({\n connection: anchorProvider.connection,\n wallet: anchorProvider.wallet,\n opts: anchorProvider.opts,\n });\n};\n\n/**\n * Creates an Anchor Provider from a Saber provider.\n * @param saberProvider\n * @returns\n */\nexport const makeAnchorProvider = (\n saberProvider: ReadonlySaberProvider\n): AnchorProvider => {\n return new AnchorProvider(\n saberProvider.connection,\n saberProvider.wallet,\n saberProvider.opts\n );\n};\n","import type { Idl } from \"@project-serum/anchor\";\nimport { Program } from \"@project-serum/anchor\";\nimport type {\n Provider as SaberProvider,\n ReadonlyProvider as ReadonlySaberProvider,\n} from \"@saberhq/solana-contrib\";\nimport type { PublicKey } from \"@solana/web3.js\";\nimport mapValues from \"lodash.mapvalues\";\n\nimport { makeAnchorProvider } from \"./provider\";\n\n/**\n * Builds a program from its IDL.\n *\n * @param idl\n * @param address\n * @param provider\n * @returns\n */\nexport const newProgram =

(\n idl: Idl,\n address: PublicKey,\n provider: SaberProvider | ReadonlySaberProvider\n) => {\n return new Program(\n idl,\n address.toString(),\n makeAnchorProvider(provider)\n ) as unknown as P;\n};\n\n/**\n * Builds a map of programs from their IDLs and addresses.\n *\n * @param provider\n * @param programs\n * @returns\n */\nexport const newProgramMap =

(\n provider: SaberProvider | ReadonlySaberProvider,\n idls: {\n [K in keyof P]: Idl;\n },\n addresses: {\n [K in keyof P]: PublicKey;\n }\n): {\n [K in keyof P]: P[K];\n} => {\n return mapValues(idls, (idl, k: keyof P) =>\n newProgram(idl, addresses[k], provider)\n ) as unknown as {\n [K in keyof P]: P[K];\n };\n};\n","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import { useTheme as muiUseTheme } from '@mui/private-theming';\n\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction useTheme(defaultTheme = null) {\n const contextTheme = muiUseTheme();\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\n\nexport default useTheme;","import createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\n\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\n\nexport default useTheme;","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","/* The MIT License (MIT)\n *\n * Copyright 2015-2018 Peter A. Bigot\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Support for translating between Buffer instances and JavaScript\n * native types.\n *\n * {@link module:Layout~Layout|Layout} is the basis of a class\n * hierarchy that associates property names with sequences of encoded\n * bytes.\n *\n * Layouts are supported for these scalar (numeric) types:\n * * {@link module:Layout~UInt|Unsigned integers in little-endian\n * format} with {@link module:Layout.u8|8-bit}, {@link\n * module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\n * {@link module:Layout.u32|32-bit}, {@link\n * module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\n * representation ranges;\n * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\n * format} with {@link module:Layout.u16be|16-bit}, {@link\n * module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\n * {@link module:Layout.u40be|40-bit}, and {@link\n * module:Layout.u48be|48-bit} representation ranges;\n * * {@link module:Layout~Int|Signed integers in little-endian\n * format} with {@link module:Layout.s8|8-bit}, {@link\n * module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\n * {@link module:Layout.s32|32-bit}, {@link\n * module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\n * representation ranges;\n * * {@link module:Layout~IntBE|Signed integers in big-endian format}\n * with {@link module:Layout.s16be|16-bit}, {@link\n * module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\n * {@link module:Layout.s40be|40-bit}, and {@link\n * module:Layout.s48be|48-bit} representation ranges;\n * * 64-bit integral values that decode to an exact (if magnitude is\n * less than 2^53) or nearby integral Number in {@link\n * module:Layout.nu64|unsigned little-endian}, {@link\n * module:Layout.nu64be|unsigned big-endian}, {@link\n * module:Layout.ns64|signed little-endian}, and {@link\n * module:Layout.ns64be|unsigned big-endian} encodings;\n * * 32-bit floating point values with {@link\n * module:Layout.f32|little-endian} and {@link\n * module:Layout.f32be|big-endian} representations;\n * * 64-bit floating point values with {@link\n * module:Layout.f64|little-endian} and {@link\n * module:Layout.f64be|big-endian} representations;\n * * {@link module:Layout.const|Constants} that take no space in the\n * encoded expression.\n *\n * and for these aggregate types:\n * * {@link module:Layout.seq|Sequence}s of instances of a {@link\n * module:Layout~Layout|Layout}, with JavaScript representation as\n * an Array and constant or data-dependent {@link\n * module:Layout~Sequence#count|length};\n * * {@link module:Layout.struct|Structure}s that aggregate a\n * heterogeneous sequence of {@link module:Layout~Layout|Layout}\n * instances, with JavaScript representation as an Object;\n * * {@link module:Layout.union|Union}s that support multiple {@link\n * module:Layout~VariantLayout|variant layouts} over a fixed\n * (padded) or variable (not padded) span of bytes, using an\n * unsigned integer at the start of the data or a separate {@link\n * module:Layout.unionLayoutDiscriminator|layout element} to\n * determine which layout to use when interpreting the buffer\n * contents;\n * * {@link module:Layout.bits|BitStructure}s that contain a sequence\n * of individual {@link\n * module:Layout~BitStructure#addField|BitField}s packed into an 8,\n * 16, 24, or 32-bit unsigned integer starting at the least- or\n * most-significant bit;\n * * {@link module:Layout.cstr|C strings} of varying length;\n * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\n * module:Layout~Blob#length|length} raw data.\n *\n * All {@link module:Layout~Layout|Layout} instances are immutable\n * after construction, to prevent internal state from becoming\n * inconsistent.\n *\n * @local Layout\n * @local ExternalLayout\n * @local GreedyCount\n * @local OffsetLayout\n * @local UInt\n * @local UIntBE\n * @local Int\n * @local IntBE\n * @local NearUInt64\n * @local NearUInt64BE\n * @local NearInt64\n * @local NearInt64BE\n * @local Float\n * @local FloatBE\n * @local Double\n * @local DoubleBE\n * @local Sequence\n * @local Structure\n * @local UnionDiscriminator\n * @local UnionLayoutDiscriminator\n * @local Union\n * @local VariantLayout\n * @local BitStructure\n * @local BitField\n * @local Boolean\n * @local Blob\n * @local CString\n * @local Constant\n * @local bindConstructorLayout\n * @module Layout\n * @license MIT\n * @author Peter A. Bigot\n * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\n */\n\n'use strict';\n\n/**\n * Base class for layout objects.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * Layout#encode|encode} or {@link Layout#decode|decode} functions.\n *\n * @param {Number} span - Initializer for {@link Layout#span|span}. The\n * parameter must be an integer; a negative value signifies that the\n * span is {@link Layout#getSpan|value-specific}.\n *\n * @param {string} [property] - Initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n */\nclass Layout {\n constructor(span, property) {\n if (!Number.isInteger(span)) {\n throw new TypeError('span must be an integer');\n }\n\n /** The span of the layout in bytes.\n *\n * Positive values are generally expected.\n *\n * Zero will only appear in {@link Constant}s and in {@link\n * Sequence}s where the {@link Sequence#count|count} is zero.\n *\n * A negative value indicates that the span is value-specific, and\n * must be obtained using {@link Layout#getSpan|getSpan}. */\n this.span = span;\n\n /** The property name used when this layout is represented in an\n * Object.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances. If left undefined the span of the unnamed layout will\n * be treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n\n /** Function to create an Object into which decoded properties will\n * be written.\n *\n * Used only for layouts that {@link Layout#decode|decode} to Object\n * instances, which means:\n * * {@link Structure}\n * * {@link Union}\n * * {@link VariantLayout}\n * * {@link BitStructure}\n *\n * If left undefined the JavaScript representation of these layouts\n * will be Object instances.\n *\n * See {@link bindConstructorLayout}.\n */\n makeDestinationObject() {\n return {};\n }\n\n /**\n * Decode from a Buffer into an JavaScript value.\n *\n * @param {Buffer} b - the buffer from which encoded data is read.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {(Number|Array|Object)} - the value of the decoded data.\n *\n * @abstract\n */\n decode(b, offset) {\n throw new Error('Layout is abstract');\n }\n\n /**\n * Encode a JavaScript value into a Buffer.\n *\n * @param {(Number|Array|Object)} src - the value to be encoded into\n * the buffer. The type accepted depends on the (sub-)type of {@link\n * Layout}.\n *\n * @param {Buffer} b - the buffer into which encoded data will be\n * written.\n *\n * @param {Number} [offset] - the offset at which the encoded data\n * starts. If absent a zero offset is inferred.\n *\n * @returns {Number} - the number of bytes encoded, including the\n * space skipped for internal padding, but excluding data such as\n * {@link Sequence#count|lengths} when stored {@link\n * ExternalLayout|externally}. This is the adjustment to `offset`\n * producing the offset where data for the next layout would be\n * written.\n *\n * @abstract\n */\n encode(src, b, offset) {\n throw new Error('Layout is abstract');\n }\n\n /**\n * Calculate the span of a specific instance of a layout.\n *\n * @param {Buffer} b - the buffer that contains an encoded instance.\n *\n * @param {Number} [offset] - the offset at which the encoded instance\n * starts. If absent a zero offset is inferred.\n *\n * @return {Number} - the number of bytes covered by the layout\n * instance. If this method is not overridden in a subclass the\n * definition-time constant {@link Layout#span|span} will be\n * returned.\n *\n * @throws {RangeError} - if the length of the value cannot be\n * determined.\n */\n getSpan(b, offset) {\n if (0 > this.span) {\n throw new RangeError('indeterminate span');\n }\n return this.span;\n }\n\n /**\n * Replicate the layout using a new property.\n *\n * This function must be used to get a structurally-equivalent layout\n * with a different name since all {@link Layout} instances are\n * immutable.\n *\n * **NOTE** This is a shallow copy. All fields except {@link\n * Layout#property|property} are strictly equal to the origin layout.\n *\n * @param {String} property - the value for {@link\n * Layout#property|property} in the replica.\n *\n * @returns {Layout} - the copy with {@link Layout#property|property}\n * set to `property`.\n */\n replicate(property) {\n const rv = Object.create(this.constructor.prototype);\n Object.assign(rv, this);\n rv.property = property;\n return rv;\n }\n\n /**\n * Create an object from layout properties and an array of values.\n *\n * **NOTE** This function returns `undefined` if invoked on a layout\n * that does not return its value as an Object. Objects are\n * returned for things that are a {@link Structure}, which includes\n * {@link VariantLayout|variant layouts} if they are structures, and\n * excludes {@link Union}s. If you want this feature for a union\n * you must use {@link Union.getVariant|getVariant} to select the\n * desired layout.\n *\n * @param {Array} values - an array of values that correspond to the\n * default order for properties. As with {@link Layout#decode|decode}\n * layout elements that have no property name are skipped when\n * iterating over the array values. Only the top-level properties are\n * assigned; arguments are not assigned to properties of contained\n * layouts. Any unused values are ignored.\n *\n * @return {(Object|undefined)}\n */\n fromArray(values) {\n return undefined;\n }\n}\nexports.Layout = Layout;\n\n/* Provide text that carries a name (such as for a function that will\n * be throwing an error) annotated with the property of a given layout\n * (such as one for which the value was unacceptable).\n *\n * @ignore */\nfunction nameWithProperty(name, lo) {\n if (lo.property) {\n return name + '[' + lo.property + ']';\n }\n return name;\n}\nexports.nameWithProperty = nameWithProperty;\n\n/**\n * Augment a class so that instances can be encoded/decoded using a\n * given layout.\n *\n * Calling this function couples `Class` with `layout` in several ways:\n *\n * * `Class.layout_` becomes a static member property equal to `layout`;\n * * `layout.boundConstructor_` becomes a static member property equal\n * to `Class`;\n * * The {@link Layout#makeDestinationObject|makeDestinationObject()}\n * property of `layout` is set to a function that returns a `new\n * Class()`;\n * * `Class.decode(b, offset)` becomes a static member function that\n * delegates to {@link Layout#decode|layout.decode}. The\n * synthesized function may be captured and extended.\n * * `Class.prototype.encode(b, offset)` provides an instance member\n * function that delegates to {@link Layout#encode|layout.encode}\n * with `src` set to `this`. The synthesized function may be\n * captured and extended, but when the extension is invoked `this`\n * must be explicitly bound to the instance.\n *\n * @param {class} Class - a JavaScript class with a nullary\n * constructor.\n *\n * @param {Layout} layout - the {@link Layout} instance used to encode\n * instances of `Class`.\n */\nfunction bindConstructorLayout(Class, layout) {\n if ('function' !== typeof Class) {\n throw new TypeError('Class must be constructor');\n }\n if (Class.hasOwnProperty('layout_')) {\n throw new Error('Class is already bound to a layout');\n }\n if (!(layout && (layout instanceof Layout))) {\n throw new TypeError('layout must be a Layout');\n }\n if (layout.hasOwnProperty('boundConstructor_')) {\n throw new Error('layout is already bound to a constructor');\n }\n Class.layout_ = layout;\n layout.boundConstructor_ = Class;\n layout.makeDestinationObject = (() => new Class());\n Object.defineProperty(Class.prototype, 'encode', {\n value: function(b, offset) {\n return layout.encode(this, b, offset);\n },\n writable: true,\n });\n Object.defineProperty(Class, 'decode', {\n value: function(b, offset) {\n return layout.decode(b, offset);\n },\n writable: true,\n });\n}\nexports.bindConstructorLayout = bindConstructorLayout;\n\n/**\n * An object that behaves like a layout but does not consume space\n * within its containing layout.\n *\n * This is primarily used to obtain metadata about a member, such as a\n * {@link OffsetLayout} that can provide data about a {@link\n * Layout#getSpan|value-specific span}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support {@link\n * ExternalLayout#isCount|isCount} or other {@link Layout} functions.\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @abstract\n * @augments {Layout}\n */\nclass ExternalLayout extends Layout {\n /**\n * Return `true` iff the external layout decodes to an unsigned\n * integer layout.\n *\n * In that case it can be used as the source of {@link\n * Sequence#count|Sequence counts}, {@link Blob#length|Blob lengths},\n * or as {@link UnionLayoutDiscriminator#layout|external union\n * discriminators}.\n *\n * @abstract\n */\n isCount() {\n throw new Error('ExternalLayout is abstract');\n }\n}\n\n/**\n * An {@link ExternalLayout} that determines its {@link\n * Layout#decode|value} based on offset into and length of the buffer\n * on which it is invoked.\n *\n * *Factory*: {@link module:Layout.greedy|greedy}\n *\n * @param {Number} [elementSpan] - initializer for {@link\n * GreedyCount#elementSpan|elementSpan}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {ExternalLayout}\n */\nclass GreedyCount extends ExternalLayout {\n constructor(elementSpan, property) {\n if (undefined === elementSpan) {\n elementSpan = 1;\n }\n if ((!Number.isInteger(elementSpan)) || (0 >= elementSpan)) {\n throw new TypeError('elementSpan must be a (positive) integer');\n }\n super(-1, property);\n\n /** The layout for individual elements of the sequence. The value\n * must be a positive integer. If not provided, the value will be\n * 1. */\n this.elementSpan = elementSpan;\n }\n\n /** @override */\n isCount() {\n return true;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const rem = b.length - offset;\n return Math.floor(rem / this.elementSpan);\n }\n\n /** @override */\n encode(src, b, offset) {\n return 0;\n }\n}\n\n/**\n * An {@link ExternalLayout} that supports accessing a {@link Layout}\n * at a fixed offset from the start of another Layout. The offset may\n * be before, within, or after the base layout.\n *\n * *Factory*: {@link module:Layout.offset|offset}\n *\n * @param {Layout} layout - initializer for {@link\n * OffsetLayout#layout|layout}, modulo `property`.\n *\n * @param {Number} [offset] - Initializes {@link\n * OffsetLayout#offset|offset}. Defaults to zero.\n *\n * @param {string} [property] - Optional new property name for a\n * {@link Layout#replicate| replica} of `layout` to be used as {@link\n * OffsetLayout#layout|layout}. If not provided the `layout` is used\n * unchanged.\n *\n * @augments {Layout}\n */\nclass OffsetLayout extends ExternalLayout {\n constructor(layout, offset, property) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n\n if (undefined === offset) {\n offset = 0;\n } else if (!Number.isInteger(offset)) {\n throw new TypeError('offset must be integer or undefined');\n }\n\n super(layout.span, property || layout.property);\n\n /** The subordinated layout. */\n this.layout = layout;\n\n /** The location of {@link OffsetLayout#layout} relative to the\n * start of another layout.\n *\n * The value may be positive or negative, but an error will thrown\n * if at the point of use it goes outside the span of the Buffer\n * being accessed. */\n this.offset = offset;\n }\n\n /** @override */\n isCount() {\n return ((this.layout instanceof UInt)\n || (this.layout instanceof UIntBE));\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.decode(b, offset + this.offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return this.layout.encode(src, b, offset + this.offset);\n }\n}\n\n/**\n * Represent an unsigned integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.u8|u8}, {@link\n * module:Layout.u16|u16}, {@link module:Layout.u24|u24}, {@link\n * module:Layout.u32|u32}, {@link module:Layout.u40|u40}, {@link\n * module:Layout.u48|u48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UInt extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readUIntLE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeUIntLE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent an unsigned integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.u8be|u8be}, {@link\n * module:Layout.u16be|u16be}, {@link module:Layout.u24be|u24be},\n * {@link module:Layout.u32be|u32be}, {@link\n * module:Layout.u40be|u40be}, {@link module:Layout.u48be|u48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UIntBE extends Layout {\n constructor(span, property) {\n super( span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readUIntBE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeUIntBE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent a signed integer in little-endian format.\n *\n * *Factory*: {@link module:Layout.s8|s8}, {@link\n * module:Layout.s16|s16}, {@link module:Layout.s24|s24}, {@link\n * module:Layout.s32|s32}, {@link module:Layout.s40|s40}, {@link\n * module:Layout.s48|s48}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Int extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readIntLE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeIntLE(src, offset, this.span);\n return this.span;\n }\n}\n\n/**\n * Represent a signed integer in big-endian format.\n *\n * *Factory*: {@link module:Layout.s8be|s8be}, {@link\n * module:Layout.s16be|s16be}, {@link module:Layout.s24be|s24be},\n * {@link module:Layout.s32be|s32be}, {@link\n * module:Layout.s40be|s40be}, {@link module:Layout.s48be|s48be}\n *\n * @param {Number} span - initializer for {@link Layout#span|span}.\n * The parameter can range from 1 through 6.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass IntBE extends Layout {\n constructor(span, property) {\n super(span, property);\n if (6 < this.span) {\n throw new RangeError('span must not exceed 6 bytes');\n }\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readIntBE(offset, this.span);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeIntBE(src, offset, this.span);\n return this.span;\n }\n}\n\nconst V2E32 = Math.pow(2, 32);\n\n/* True modulus high and low 32-bit words, where low word is always\n * non-negative. */\nfunction divmodInt64(src) {\n const hi32 = Math.floor(src / V2E32);\n const lo32 = src - (hi32 * V2E32);\n return {hi32, lo32};\n}\n/* Reconstruct Number from quotient and non-negative remainder */\nfunction roundedInt64(hi32, lo32) {\n return hi32 * V2E32 + lo32;\n}\n\n/**\n * Represent an unsigned 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64|nu64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const lo32 = b.readUInt32LE(offset);\n const hi32 = b.readUInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeUInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent an unsigned 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.nu64be|nu64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearUInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const hi32 = b.readUInt32BE(offset);\n const lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a signed 64-bit integer in little-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64|ns64}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64 extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const lo32 = b.readUInt32LE(offset);\n const hi32 = b.readInt32LE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeUInt32LE(split.lo32, offset);\n b.writeInt32LE(split.hi32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a signed 64-bit integer in big-endian format when\n * encoded and as a near integral JavaScript Number when decoded.\n *\n * *Factory*: {@link module:Layout.ns64be|ns64be}\n *\n * **NOTE** Values with magnitude greater than 2^52 may not decode to\n * the exact value of the encoded representation.\n *\n * @augments {Layout}\n */\nclass NearInt64BE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const hi32 = b.readInt32BE(offset);\n const lo32 = b.readUInt32BE(offset + 4);\n return roundedInt64(hi32, lo32);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const split = divmodInt64(src);\n b.writeInt32BE(split.hi32, offset);\n b.writeUInt32BE(split.lo32, offset + 4);\n return 8;\n }\n}\n\n/**\n * Represent a 32-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f32|f32}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Float extends Layout {\n constructor(property) {\n super(4, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readFloatLE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeFloatLE(src, offset);\n return 4;\n }\n}\n\n/**\n * Represent a 32-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f32be|f32be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass FloatBE extends Layout {\n constructor(property) {\n super(4, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readFloatBE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeFloatBE(src, offset);\n return 4;\n }\n}\n\n/**\n * Represent a 64-bit floating point number in little-endian format.\n *\n * *Factory*: {@link module:Layout.f64|f64}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Double extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readDoubleLE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeDoubleLE(src, offset);\n return 8;\n }\n}\n\n/**\n * Represent a 64-bit floating point number in big-endian format.\n *\n * *Factory*: {@link module:Layout.f64be|f64be}\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass DoubleBE extends Layout {\n constructor(property) {\n super(8, property);\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n return b.readDoubleBE(offset);\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n b.writeDoubleBE(src, offset);\n return 8;\n }\n}\n\n/**\n * Represent a contiguous sequence of a specific layout as an Array.\n *\n * *Factory*: {@link module:Layout.seq|seq}\n *\n * @param {Layout} elementLayout - initializer for {@link\n * Sequence#elementLayout|elementLayout}.\n *\n * @param {(Number|ExternalLayout)} count - initializer for {@link\n * Sequence#count|count}. The parameter must be either a positive\n * integer or an instance of {@link ExternalLayout}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Sequence extends Layout {\n constructor(elementLayout, count, property) {\n if (!(elementLayout instanceof Layout)) {\n throw new TypeError('elementLayout must be a Layout');\n }\n if (!(((count instanceof ExternalLayout) && count.isCount())\n || (Number.isInteger(count) && (0 <= count)))) {\n throw new TypeError('count must be non-negative integer '\n + 'or an unsigned integer ExternalLayout');\n }\n let span = -1;\n if ((!(count instanceof ExternalLayout))\n && (0 < elementLayout.span)) {\n span = count * elementLayout.span;\n }\n\n super(span, property);\n\n /** The layout for individual elements of the sequence. */\n this.elementLayout = elementLayout;\n\n /** The number of elements in the sequence.\n *\n * This will be either a non-negative integer or an instance of\n * {@link ExternalLayout} for which {@link\n * ExternalLayout#isCount|isCount()} is `true`. */\n this.count = count;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let span = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n if (0 < this.elementLayout.span) {\n span = count * this.elementLayout.span;\n } else {\n let idx = 0;\n while (idx < count) {\n span += this.elementLayout.getSpan(b, offset + span);\n ++idx;\n }\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const rv = [];\n let i = 0;\n let count = this.count;\n if (count instanceof ExternalLayout) {\n count = count.decode(b, offset);\n }\n while (i < count) {\n rv.push(this.elementLayout.decode(b, offset));\n offset += this.elementLayout.getSpan(b, offset);\n i += 1;\n }\n return rv;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Sequence}.\n *\n * **NOTE** If `src` is shorter than {@link Sequence#count|count} then\n * the unused space in the buffer is left unchanged. If `src` is\n * longer than {@link Sequence#count|count} the unneeded elements are\n * ignored.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const elo = this.elementLayout;\n const span = src.reduce((span, v) => {\n return span + elo.encode(v, b, offset + span);\n }, 0);\n if (this.count instanceof ExternalLayout) {\n this.count.encode(src.length, b, offset);\n }\n return span;\n }\n}\n\n/**\n * Represent a contiguous sequence of arbitrary layout elements as an\n * Object.\n *\n * *Factory*: {@link module:Layout.struct|struct}\n *\n * **NOTE** The {@link Layout#span|span} of the structure is variable\n * if any layout in {@link Structure#fields|fields} has a variable\n * span. When {@link Layout#encode|encoding} we must have a value for\n * all variable-length fields, or we wouldn't be able to figure out\n * how much space to use for storage. We can only identify the value\n * for a field when it has a {@link Layout#property|property}. As\n * such, although a structure may contain both unnamed fields and\n * variable-length fields, it cannot contain an unnamed\n * variable-length field.\n *\n * @param {Layout[]} fields - initializer for {@link\n * Structure#fields|fields}. An error is raised if this contains a\n * variable-length field for which a {@link Layout#property|property}\n * is not defined.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @param {Boolean} [decodePrefixes] - initializer for {@link\n * Structure#decodePrefixes|property}.\n *\n * @throws {Error} - if `fields` contains an unnamed variable-length\n * layout.\n *\n * @augments {Layout}\n */\nclass Structure extends Layout {\n constructor(fields, property, decodePrefixes) {\n if (!(Array.isArray(fields)\n && fields.reduce((acc, v) => acc && (v instanceof Layout), true))) {\n throw new TypeError('fields must be array of Layout instances');\n }\n if (('boolean' === typeof property)\n && (undefined === decodePrefixes)) {\n decodePrefixes = property;\n property = undefined;\n }\n\n /* Verify absence of unnamed variable-length fields. */\n for (const fd of fields) {\n if ((0 > fd.span)\n && (undefined === fd.property)) {\n throw new Error('fields cannot contain unnamed variable-length layout');\n }\n }\n\n let span = -1;\n try {\n span = fields.reduce((span, fd) => span + fd.getSpan(), 0);\n } catch (e) {\n }\n super(span, property);\n\n /** The sequence of {@link Layout} values that comprise the\n * structure.\n *\n * The individual elements need not be the same type, and may be\n * either scalar or aggregate layouts. If a member layout leaves\n * its {@link Layout#property|property} undefined the\n * corresponding region of the buffer associated with the element\n * will not be mutated.\n *\n * @type {Layout[]} */\n this.fields = fields;\n\n /** Control behavior of {@link Layout#decode|decode()} given short\n * buffers.\n *\n * In some situations a structure many be extended with additional\n * fields over time, with older installations providing only a\n * prefix of the full structure. If this property is `true`\n * decoding will accept those buffers and leave subsequent fields\n * undefined, as long as the buffer ends at a field boundary.\n * Defaults to `false`. */\n this.decodePrefixes = !!decodePrefixes;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let span = 0;\n try {\n span = this.fields.reduce((span, fd) => {\n const fsp = fd.getSpan(b, offset);\n offset += fsp;\n return span + fsp;\n }, 0);\n } catch (e) {\n throw new RangeError('indeterminate span');\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(b, offset);\n }\n offset += fd.getSpan(b, offset);\n if (this.decodePrefixes\n && (b.length === offset)) {\n break;\n }\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Structure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the buffer is\n * left unmodified. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const firstOffset = offset;\n let lastOffset = 0;\n let lastWrote = 0;\n for (const fd of this.fields) {\n let span = fd.span;\n lastWrote = (0 < span) ? span : 0;\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n lastWrote = fd.encode(fv, b, offset);\n if (0 > span) {\n /* Read the as-encoded span, which is not necessarily the\n * same as what we wrote. */\n span = fd.getSpan(b, offset);\n }\n }\n }\n lastOffset = offset;\n offset += span;\n }\n /* Use (lastOffset + lastWrote) instead of offset because the last\n * item may have had a dynamic length and we don't want to include\n * the padding between it and the end of the space reserved for\n * it. */\n return (lastOffset + lastWrote) - firstOffset;\n }\n\n /** @override */\n fromArray(values) {\n const dest = this.makeDestinationObject();\n for (const fd of this.fields) {\n if ((undefined !== fd.property)\n && (0 < values.length)) {\n dest[fd.property] = values.shift();\n }\n }\n return dest;\n }\n\n /**\n * Get access to the layout of a given property.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Layout} - the layout associated with `property`, or\n * undefined if there is no such property.\n */\n layoutFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n }\n\n /**\n * Get the offset of a structure member.\n *\n * @param {String} property - the structure member of interest.\n *\n * @return {Number} - the offset in bytes to the start of `property`\n * within the structure, or undefined if `property` is not a field\n * within the structure. If the property is a member but follows a\n * variable-length structure member a negative number will be\n * returned.\n */\n offsetOf(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n let offset = 0;\n for (const fd of this.fields) {\n if (fd.property === property) {\n return offset;\n }\n if (0 > fd.span) {\n offset = -1;\n } else if (0 <= offset) {\n offset += fd.span;\n }\n }\n }\n}\n\n/**\n * An object that can provide a {@link\n * Union#discriminator|discriminator} API for {@link Union}.\n *\n * **NOTE** This is an abstract base class; you can create instances\n * if it amuses you, but they won't support the {@link\n * UnionDiscriminator#encode|encode} or {@link\n * UnionDiscriminator#decode|decode} functions.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}.\n *\n * @abstract\n */\nclass UnionDiscriminator {\n constructor(property) {\n /** The {@link Layout#property|property} to be used when the\n * discriminator is referenced in isolation (generally when {@link\n * Union#decode|Union decode} cannot delegate to a specific\n * variant). */\n this.property = property;\n }\n\n /** Analog to {@link Layout#decode|Layout decode} for union discriminators.\n *\n * The implementation of this method need not reference the buffer if\n * variant information is available through other means. */\n decode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n\n /** Analog to {@link Layout#decode|Layout encode} for union discriminators.\n *\n * The implementation of this method need not store the value if\n * variant information is maintained through other means. */\n encode() {\n throw new Error('UnionDiscriminator is abstract');\n }\n}\n\n/**\n * An object that can provide a {@link\n * UnionDiscriminator|discriminator API} for {@link Union} using an\n * unsigned integral {@link Layout} instance located either inside or\n * outside the union.\n *\n * @param {ExternalLayout} layout - initializes {@link\n * UnionLayoutDiscriminator#layout|layout}. Must satisfy {@link\n * ExternalLayout#isCount|isCount()}.\n *\n * @param {string} [property] - Default for {@link\n * UnionDiscriminator#property|property}, superseding the property\n * from `layout`, but defaulting to `variant` if neither `property`\n * nor layout provide a property name.\n *\n * @augments {UnionDiscriminator}\n */\nclass UnionLayoutDiscriminator extends UnionDiscriminator {\n constructor(layout, property) {\n if (!((layout instanceof ExternalLayout)\n && layout.isCount())) {\n throw new TypeError('layout must be an unsigned integer ExternalLayout');\n }\n\n super(property || layout.property || 'variant');\n\n /** The {@link ExternalLayout} used to access the discriminator\n * value. */\n this.layout = layout;\n }\n\n /** Delegate decoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n decode(b, offset) {\n return this.layout.decode(b, offset);\n }\n\n /** Delegate encoding to {@link UnionLayoutDiscriminator#layout|layout}. */\n encode(src, b, offset) {\n return this.layout.encode(src, b, offset);\n }\n}\n\n/**\n * Represent any number of span-compatible layouts.\n *\n * *Factory*: {@link module:Layout.union|union}\n *\n * If the union has a {@link Union#defaultLayout|default layout} that\n * layout must have a non-negative {@link Layout#span|span}. The span\n * of a fixed-span union includes its {@link\n * Union#discriminator|discriminator} if the variant is a {@link\n * Union#usesPrefixDiscriminator|prefix of the union}, plus the span\n * of its {@link Union#defaultLayout|default layout}.\n *\n * If the union does not have a default layout then the encoded span\n * of the union depends on the encoded span of its variant (which may\n * be fixed or variable).\n *\n * {@link VariantLayout#layout|Variant layout}s are added through\n * {@link Union#addVariant|addVariant}. If the union has a default\n * layout, the span of the {@link VariantLayout#layout|layout\n * contained by the variant} must not exceed the span of the {@link\n * Union#defaultLayout|default layout} (minus the span of a {@link\n * Union#usesPrefixDiscriminator|prefix disriminator}, if used). The\n * span of the variant will equal the span of the union itself.\n *\n * The variant for a buffer can only be identified from the {@link\n * Union#discriminator|discriminator} {@link\n * UnionDiscriminator#property|property} (in the case of the {@link\n * Union#defaultLayout|default layout}), or by using {@link\n * Union#getVariant|getVariant} and examining the resulting {@link\n * VariantLayout} instance.\n *\n * A variant compatible with a JavaScript object can be identified\n * using {@link Union#getSourceVariant|getSourceVariant}.\n *\n * @param {(UnionDiscriminator|ExternalLayout|Layout)} discr - How to\n * identify the layout used to interpret the union contents. The\n * parameter must be an instance of {@link UnionDiscriminator}, an\n * {@link ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}, or {@link UInt} (or {@link\n * UIntBE}). When a non-external layout element is passed the layout\n * appears at the start of the union. In all cases the (synthesized)\n * {@link UnionDiscriminator} instance is recorded as {@link\n * Union#discriminator|discriminator}.\n *\n * @param {(Layout|null)} defaultLayout - initializer for {@link\n * Union#defaultLayout|defaultLayout}. If absent defaults to `null`.\n * If `null` there is no default layout: the union has data-dependent\n * length and attempts to decode or encode unrecognized variants will\n * throw an exception. A {@link Layout} instance must have a\n * non-negative {@link Layout#span|span}, and if it lacks a {@link\n * Layout#property|property} the {@link\n * Union#defaultLayout|defaultLayout} will be a {@link\n * Layout#replicate|replica} with property `content`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Union extends Layout {\n constructor(discr, defaultLayout, property) {\n const upv = ((discr instanceof UInt)\n || (discr instanceof UIntBE));\n if (upv) {\n discr = new UnionLayoutDiscriminator(new OffsetLayout(discr));\n } else if ((discr instanceof ExternalLayout)\n && discr.isCount()) {\n discr = new UnionLayoutDiscriminator(discr);\n } else if (!(discr instanceof UnionDiscriminator)) {\n throw new TypeError('discr must be a UnionDiscriminator '\n + 'or an unsigned integer layout');\n }\n if (undefined === defaultLayout) {\n defaultLayout = null;\n }\n if (!((null === defaultLayout)\n || (defaultLayout instanceof Layout))) {\n throw new TypeError('defaultLayout must be null or a Layout');\n }\n if (null !== defaultLayout) {\n if (0 > defaultLayout.span) {\n throw new Error('defaultLayout must have constant span');\n }\n if (undefined === defaultLayout.property) {\n defaultLayout = defaultLayout.replicate('content');\n }\n }\n\n /* The union span can be estimated only if there's a default\n * layout. The union spans its default layout, plus any prefix\n * variant layout. By construction both layouts, if present, have\n * non-negative span. */\n let span = -1;\n if (defaultLayout) {\n span = defaultLayout.span;\n if ((0 <= span) && upv) {\n span += discr.layout.span;\n }\n }\n super(span, property);\n\n /** The interface for the discriminator value in isolation.\n *\n * This a {@link UnionDiscriminator} either passed to the\n * constructor or synthesized from the `discr` constructor\n * argument. {@link\n * Union#usesPrefixDiscriminator|usesPrefixDiscriminator} will be\n * `true` iff the `discr` parameter was a non-offset {@link\n * Layout} instance. */\n this.discriminator = discr;\n\n /** `true` if the {@link Union#discriminator|discriminator} is the\n * first field in the union.\n *\n * If `false` the discriminator is obtained from somewhere\n * else. */\n this.usesPrefixDiscriminator = upv;\n\n /** The layout for non-discriminator content when the value of the\n * discriminator is not recognized.\n *\n * This is the value passed to the constructor. It is\n * structurally equivalent to the second component of {@link\n * Union#layout|layout} but may have a different property\n * name. */\n this.defaultLayout = defaultLayout;\n\n /** A registry of allowed variants.\n *\n * The keys are unsigned integers which should be compatible with\n * {@link Union.discriminator|discriminator}. The property value\n * is the corresponding {@link VariantLayout} instances assigned\n * to this union by {@link Union#addVariant|addVariant}.\n *\n * **NOTE** The registry remains mutable so that variants can be\n * {@link Union#addVariant|added} at any time. Users should not\n * manipulate the content of this property. */\n this.registry = {};\n\n /* Private variable used when invoking getSourceVariant */\n let boundGetSourceVariant = this.defaultGetSourceVariant.bind(this);\n\n /** Function to infer the variant selected by a source object.\n *\n * Defaults to {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant} but may\n * be overridden using {@link\n * Union#configGetSourceVariant|configGetSourceVariant}.\n *\n * @param {Object} src - as with {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * @returns {(undefined|VariantLayout)} The default variant\n * (`undefined`) or first registered variant that uses a property\n * available in `src`. */\n this.getSourceVariant = function(src) {\n return boundGetSourceVariant(src);\n };\n\n /** Function to override the implementation of {@link\n * Union#getSourceVariant|getSourceVariant}.\n *\n * Use this if the desired variant cannot be identified using the\n * algorithm of {@link\n * Union#defaultGetSourceVariant|defaultGetSourceVariant}.\n *\n * **NOTE** The provided function will be invoked bound to this\n * Union instance, providing local access to {@link\n * Union#registry|registry}.\n *\n * @param {Function} gsv - a function that follows the API of\n * {@link Union#defaultGetSourceVariant|defaultGetSourceVariant}. */\n this.configGetSourceVariant = function(gsv) {\n boundGetSourceVariant = gsv.bind(this);\n };\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n /* Default layouts always have non-negative span, so we don't have\n * one and we have to recognize the variant which will in turn\n * determine the span. */\n const vlo = this.getVariant(b, offset);\n if (!vlo) {\n throw new Error('unable to determine span for unrecognized variant');\n }\n return vlo.getSpan(b, offset);\n }\n\n /**\n * Method to infer a registered Union variant compatible with `src`.\n *\n * The first satisified rule in the following sequence defines the\n * return value:\n * * If `src` has properties matching the Union discriminator and\n * the default layout, `undefined` is returned regardless of the\n * value of the discriminator property (this ensures the default\n * layout will be used);\n * * If `src` has a property matching the Union discriminator, the\n * value of the discriminator identifies a registered variant, and\n * either (a) the variant has no layout, or (b) `src` has the\n * variant's property, then the variant is returned (because the\n * source satisfies the constraints of the variant it identifies);\n * * If `src` does not have a property matching the Union\n * discriminator, but does have a property matching a registered\n * variant, then the variant is returned (because the source\n * matches a variant without an explicit conflict);\n * * An error is thrown (because we either can't identify a variant,\n * or we were explicitly told the variant but can't satisfy it).\n *\n * @param {Object} src - an object presumed to be compatible with\n * the content of the Union.\n *\n * @return {(undefined|VariantLayout)} - as described above.\n *\n * @throws {Error} - if `src` cannot be associated with a default or\n * registered variant.\n */\n defaultGetSourceVariant(src) {\n if (src.hasOwnProperty(this.discriminator.property)) {\n if (this.defaultLayout\n && src.hasOwnProperty(this.defaultLayout.property)) {\n return undefined;\n }\n const vlo = this.registry[src[this.discriminator.property]];\n if (vlo\n && ((!vlo.layout)\n || src.hasOwnProperty(vlo.property))) {\n return vlo;\n }\n } else {\n for (const tag in this.registry) {\n const vlo = this.registry[tag];\n if (src.hasOwnProperty(vlo.property)) {\n return vlo;\n }\n }\n }\n throw new Error('unable to infer src variant');\n }\n\n /** Implement {@link Layout#decode|decode} for {@link Union}.\n *\n * If the variant is {@link Union#addVariant|registered} the return\n * value is an instance of that variant, with no explicit\n * discriminator. Otherwise the {@link Union#defaultLayout|default\n * layout} is used to decode the content. */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let dest;\n const dlo = this.discriminator;\n const discr = dlo.decode(b, offset);\n let clo = this.registry[discr];\n if (undefined === clo) {\n let contentOffset = 0;\n clo = this.defaultLayout;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dest = this.makeDestinationObject();\n dest[dlo.property] = discr;\n dest[clo.property] = this.defaultLayout.decode(b, offset + contentOffset);\n } else {\n dest = clo.decode(b, offset);\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Union}.\n *\n * This API assumes the `src` object is consistent with the union's\n * {@link Union#defaultLayout|default layout}. To encode variants\n * use the appropriate variant-specific {@link VariantLayout#encode}\n * method. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const vlo = this.getSourceVariant(src);\n if (undefined === vlo) {\n const dlo = this.discriminator;\n const clo = this.defaultLayout;\n let contentOffset = 0;\n if (this.usesPrefixDiscriminator) {\n contentOffset = dlo.layout.span;\n }\n dlo.encode(src[dlo.property], b, offset);\n return contentOffset + clo.encode(src[clo.property], b,\n offset + contentOffset);\n }\n return vlo.encode(src, b, offset);\n }\n\n /** Register a new variant structure within a union. The newly\n * created variant is returned.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} layout - initializer for {@link\n * VariantLayout#layout|layout}.\n *\n * @param {String} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {VariantLayout} */\n addVariant(variant, layout, property) {\n const rv = new VariantLayout(this, variant, layout, property);\n this.registry[variant] = rv;\n return rv;\n }\n\n /**\n * Get the layout associated with a registered variant.\n *\n * If `vb` does not produce a registered variant the function returns\n * `undefined`.\n *\n * @param {(Number|Buffer)} vb - either the variant number, or a\n * buffer from which the discriminator is to be read.\n *\n * @param {Number} offset - offset into `vb` for the start of the\n * union. Used only when `vb` is an instance of {Buffer}.\n *\n * @return {({VariantLayout}|undefined)}\n */\n getVariant(vb, offset) {\n let variant = vb;\n if (Buffer.isBuffer(vb)) {\n if (undefined === offset) {\n offset = 0;\n }\n variant = this.discriminator.decode(vb, offset);\n }\n return this.registry[variant];\n }\n}\n\n/**\n * Represent a specific variant within a containing union.\n *\n * **NOTE** The {@link Layout#span|span} of the variant may include\n * the span of the {@link Union#discriminator|discriminator} used to\n * identify it, but values read and written using the variant strictly\n * conform to the content of {@link VariantLayout#layout|layout}.\n *\n * **NOTE** User code should not invoke this constructor directly. Use\n * the union {@link Union#addVariant|addVariant} helper method.\n *\n * @param {Union} union - initializer for {@link\n * VariantLayout#union|union}.\n *\n * @param {Number} variant - initializer for {@link\n * VariantLayout#variant|variant}.\n *\n * @param {Layout} [layout] - initializer for {@link\n * VariantLayout#layout|layout}. If absent the variant carries no\n * data.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}. Unlike many other layouts, variant\n * layouts normally include a property name so they can be identified\n * within their containing {@link Union}. The property identifier may\n * be absent only if `layout` is is absent.\n *\n * @augments {Layout}\n */\nclass VariantLayout extends Layout {\n constructor(union, variant, layout, property) {\n if (!(union instanceof Union)) {\n throw new TypeError('union must be a Union');\n }\n if ((!Number.isInteger(variant)) || (0 > variant)) {\n throw new TypeError('variant must be a (non-negative) integer');\n }\n if (('string' === typeof layout)\n && (undefined === property)) {\n property = layout;\n layout = null;\n }\n if (layout) {\n if (!(layout instanceof Layout)) {\n throw new TypeError('layout must be a Layout');\n }\n if ((null !== union.defaultLayout)\n && (0 <= layout.span)\n && (layout.span > union.defaultLayout.span)) {\n throw new Error('variant span exceeds span of containing union');\n }\n if ('string' !== typeof property) {\n throw new TypeError('variant must have a String property');\n }\n }\n let span = union.span;\n if (0 > union.span) {\n span = layout ? layout.span : 0;\n if ((0 <= span) && union.usesPrefixDiscriminator) {\n span += union.discriminator.layout.span;\n }\n }\n super(span, property);\n\n /** The {@link Union} to which this variant belongs. */\n this.union = union;\n\n /** The unsigned integral value identifying this variant within\n * the {@link Union#discriminator|discriminator} of the containing\n * union. */\n this.variant = variant;\n\n /** The {@link Layout} to be used when reading/writing the\n * non-discriminator part of the {@link\n * VariantLayout#union|union}. If `null` the variant carries no\n * data. */\n this.layout = layout || null;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (0 <= this.span) {\n /* Will be equal to the containing union span if that is not\n * variable. */\n return this.span;\n }\n if (undefined === offset) {\n offset = 0;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n /* Span is defined solely by the variant (and prefix discriminator) */\n return contentOffset + this.layout.getSpan(b, offset + contentOffset);\n }\n\n /** @override */\n decode(b, offset) {\n const dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n if (this !== this.union.getVariant(b, offset)) {\n throw new Error('variant mismatch');\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout) {\n dest[this.property] = this.layout.decode(b, offset + contentOffset);\n } else if (this.property) {\n dest[this.property] = true;\n } else if (this.union.usesPrefixDiscriminator) {\n dest[this.union.discriminator.property] = this.variant;\n }\n return dest;\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let contentOffset = 0;\n if (this.union.usesPrefixDiscriminator) {\n contentOffset = this.union.discriminator.layout.span;\n }\n if (this.layout\n && (!src.hasOwnProperty(this.property))) {\n throw new TypeError('variant lacks property ' + this.property);\n }\n this.union.discriminator.encode(this.variant, b, offset);\n let span = contentOffset;\n if (this.layout) {\n this.layout.encode(src[this.property], b, offset + contentOffset);\n span += this.layout.getSpan(b, offset + contentOffset);\n if ((0 <= this.union.span)\n && (span > this.union.span)) {\n throw new Error('encoded variant overruns containing union');\n }\n }\n return span;\n }\n\n /** Delegate {@link Layout#fromArray|fromArray} to {@link\n * VariantLayout#layout|layout}. */\n fromArray(values) {\n if (this.layout) {\n return this.layout.fromArray(values);\n }\n }\n}\n\n/** JavaScript chose to define bitwise operations as operating on\n * signed 32-bit values in 2's complement form, meaning any integer\n * with bit 31 set is going to look negative. For right shifts that's\n * not a problem, because `>>>` is a logical shift, but for every\n * other bitwise operator we have to compensate for possible negative\n * results. */\nfunction fixBitwiseResult(v) {\n if (0 > v) {\n v += 0x100000000;\n }\n return v;\n}\n\n/**\n * Contain a sequence of bit fields as an unsigned integer.\n *\n * *Factory*: {@link module:Layout.bits|bits}\n *\n * This is a container element; within it there are {@link BitField}\n * instances that provide the extracted properties. The container\n * simply defines the aggregate representation and its bit ordering.\n * The representation is an object containing properties with numeric\n * or {@link Boolean} values.\n *\n * {@link BitField}s are added with the {@link\n * BitStructure#addField|addField} and {@link\n * BitStructure#addBoolean|addBoolean} methods.\n\n * @param {Layout} word - initializer for {@link\n * BitStructure#word|word}. The parameter must be an instance of\n * {@link UInt} (or {@link UIntBE}) that is no more than 4 bytes wide.\n *\n * @param {bool} [msb] - `true` if the bit numbering starts at the\n * most significant bit of the containing word; `false` (default) if\n * it starts at the least significant bit of the containing word. If\n * the parameter at this position is a string and `property` is\n * `undefined` the value of this argument will instead be used as the\n * value of `property`.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass BitStructure extends Layout {\n constructor(word, msb, property) {\n if (!((word instanceof UInt)\n || (word instanceof UIntBE))) {\n throw new TypeError('word must be a UInt or UIntBE layout');\n }\n if (('string' === typeof msb)\n && (undefined === property)) {\n property = msb;\n msb = undefined;\n }\n if (4 < word.span) {\n throw new RangeError('word cannot exceed 32 bits');\n }\n super(word.span, property);\n\n /** The layout used for the packed value. {@link BitField}\n * instances are packed sequentially depending on {@link\n * BitStructure#msb|msb}. */\n this.word = word;\n\n /** Whether the bit sequences are packed starting at the most\n * significant bit growing down (`true`), or the least significant\n * bit growing up (`false`).\n *\n * **NOTE** Regardless of this value, the least significant bit of\n * any {@link BitField} value is the least significant bit of the\n * corresponding section of the packed value. */\n this.msb = !!msb;\n\n /** The sequence of {@link BitField} layouts that comprise the\n * packed structure.\n *\n * **NOTE** The array remains mutable to allow fields to be {@link\n * BitStructure#addField|added} after construction. Users should\n * not manipulate the content of this property.*/\n this.fields = [];\n\n /* Storage for the value. Capture a variable instead of using an\n * instance property because we don't want anything to change the\n * value without going through the mutator. */\n let value = 0;\n this._packedSetValue = function(v) {\n value = fixBitwiseResult(v);\n return this;\n };\n this._packedGetValue = function() {\n return value;\n };\n }\n\n /** @override */\n decode(b, offset) {\n const dest = this.makeDestinationObject();\n if (undefined === offset) {\n offset = 0;\n }\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n dest[fd.property] = fd.decode(value);\n }\n }\n return dest;\n }\n\n /** Implement {@link Layout#encode|encode} for {@link BitStructure}.\n *\n * If `src` is missing a property for a member with a defined {@link\n * Layout#property|property} the corresponding region of the packed\n * value is left unmodified. Unused bits are also left unmodified. */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n const value = this.word.decode(b, offset);\n this._packedSetValue(value);\n for (const fd of this.fields) {\n if (undefined !== fd.property) {\n const fv = src[fd.property];\n if (undefined !== fv) {\n fd.encode(fv);\n }\n }\n }\n return this.word.encode(this._packedGetValue(), b, offset);\n }\n\n /** Register a new bitfield with a containing bit structure. The\n * resulting bitfield is returned.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {BitField} */\n addField(bits, property) {\n const bf = new BitField(this, bits, property);\n this.fields.push(bf);\n return bf;\n }\n\n /** As with {@link BitStructure#addField|addField} for single-bit\n * fields with `boolean` value representation.\n *\n * @param {string} property - initializer for {@link\n * Layout#property|property}.\n *\n * @return {Boolean} */\n addBoolean(property) {\n // This is my Boolean, not the Javascript one.\n // eslint-disable-next-line no-new-wrappers\n const bf = new Boolean(this, property);\n this.fields.push(bf);\n return bf;\n }\n\n /**\n * Get access to the bit field for a given property.\n *\n * @param {String} property - the bit field of interest.\n *\n * @return {BitField} - the field associated with `property`, or\n * undefined if there is no such property.\n */\n fieldFor(property) {\n if ('string' !== typeof property) {\n throw new TypeError('property must be string');\n }\n for (const fd of this.fields) {\n if (fd.property === property) {\n return fd;\n }\n }\n }\n}\n\n/**\n * Represent a sequence of bits within a {@link BitStructure}.\n *\n * All bit field values are represented as unsigned integers.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addField|addField} helper\n * method.\n *\n * **NOTE** BitField instances are not instances of {@link Layout}\n * since {@link Layout#span|span} measures 8-bit units.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {Number} bits - initializer for {@link BitField#bits|bits}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n */\nclass BitField {\n constructor(container, bits, property) {\n if (!(container instanceof BitStructure)) {\n throw new TypeError('container must be a BitStructure');\n }\n if ((!Number.isInteger(bits)) || (0 >= bits)) {\n throw new TypeError('bits must be positive integer');\n }\n const totalBits = 8 * container.span;\n const usedBits = container.fields.reduce((sum, fd) => sum + fd.bits, 0);\n if ((bits + usedBits) > totalBits) {\n throw new Error('bits too long for span remainder ('\n + (totalBits - usedBits) + ' of '\n + totalBits + ' remain)');\n }\n\n /** The {@link BitStructure} instance to which this bit field\n * belongs. */\n this.container = container;\n\n /** The span of this value in bits. */\n this.bits = bits;\n\n /** A mask of {@link BitField#bits|bits} bits isolating value bits\n * that fit within the field.\n *\n * That is, it masks a value that has not yet been shifted into\n * position within its containing packed integer. */\n this.valueMask = (1 << bits) - 1;\n if (32 === bits) { // shifted value out of range\n this.valueMask = 0xFFFFFFFF;\n }\n\n /** The offset of the value within the containing packed unsigned\n * integer. The least significant bit of the packed value is at\n * offset zero, regardless of bit ordering used. */\n this.start = usedBits;\n if (this.container.msb) {\n this.start = totalBits - usedBits - bits;\n }\n\n /** A mask of {@link BitField#bits|bits} isolating the field value\n * within the containing packed unsigned integer. */\n this.wordMask = fixBitwiseResult(this.valueMask << this.start);\n\n /** The property name used when this bitfield is represented in an\n * Object.\n *\n * Intended to be functionally equivalent to {@link\n * Layout#property}.\n *\n * If left undefined the corresponding span of bits will be\n * treated as padding: it will not be mutated by {@link\n * Layout#encode|encode} nor represented as a property in the\n * decoded Object. */\n this.property = property;\n }\n\n /** Store a value into the corresponding subsequence of the containing\n * bit field. */\n decode() {\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(word & this.wordMask);\n const value = wordValue >>> this.start;\n return value;\n }\n\n /** Store a value into the corresponding subsequence of the containing\n * bit field.\n *\n * **NOTE** This is not a specialization of {@link\n * Layout#encode|Layout.encode} and there is no return value. */\n encode(value) {\n if ((!Number.isInteger(value))\n || (value !== fixBitwiseResult(value & this.valueMask))) {\n throw new TypeError(nameWithProperty('BitField.encode', this)\n + ' value must be integer not exceeding ' + this.valueMask);\n }\n const word = this.container._packedGetValue();\n const wordValue = fixBitwiseResult(value << this.start);\n this.container._packedSetValue(fixBitwiseResult(word & ~this.wordMask)\n | wordValue);\n };\n}\n\n/**\n * Represent a single bit within a {@link BitStructure} as a\n * JavaScript boolean.\n *\n * **NOTE** User code should not invoke this constructor directly.\n * Use the container {@link BitStructure#addBoolean|addBoolean} helper\n * method.\n *\n * @param {BitStructure} container - initializer for {@link\n * BitField#container|container}.\n *\n * @param {string} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {BitField}\n */\n/* eslint-disable no-extend-native */\nclass Boolean extends BitField {\n constructor(container, property) {\n super(container, 1, property);\n }\n\n /** Override {@link BitField#decode|decode} for {@link Boolean|Boolean}.\n *\n * @returns {boolean} */\n decode(b, offset) {\n return !!BitField.prototype.decode.call(this, b, offset);\n }\n\n /** @override */\n encode(value) {\n if ('boolean' === typeof value) {\n // BitField requires integer values\n value = +value;\n }\n return BitField.prototype.encode.call(this, value);\n }\n}\n/* eslint-enable no-extend-native */\n\n/**\n * Contain a fixed-length block of arbitrary data, represented as a\n * Buffer.\n *\n * *Factory*: {@link module:Layout.blob|blob}\n *\n * @param {(Number|ExternalLayout)} length - initializes {@link\n * Blob#length|length}.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Blob extends Layout {\n constructor(length, property) {\n if (!(((length instanceof ExternalLayout) && length.isCount())\n || (Number.isInteger(length) && (0 <= length)))) {\n throw new TypeError('length must be positive integer '\n + 'or an unsigned integer ExternalLayout');\n }\n\n let span = -1;\n if (!(length instanceof ExternalLayout)) {\n span = length;\n }\n super(span, property);\n\n /** The number of bytes in the blob.\n *\n * This may be a non-negative integer, or an instance of {@link\n * ExternalLayout} that satisfies {@link\n * ExternalLayout#isCount|isCount()}. */\n this.length = length;\n }\n\n /** @override */\n getSpan(b, offset) {\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return span;\n }\n\n /** @override */\n decode(b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.span;\n if (0 > span) {\n span = this.length.decode(b, offset);\n }\n return b.slice(offset, offset + span);\n }\n\n /** Implement {@link Layout#encode|encode} for {@link Blob}.\n *\n * **NOTE** If {@link Layout#count|count} is an instance of {@link\n * ExternalLayout} then the length of `src` will be encoded as the\n * count after `src` is encoded. */\n encode(src, b, offset) {\n let span = this.length;\n if (this.length instanceof ExternalLayout) {\n span = src.length;\n }\n if (!(Buffer.isBuffer(src)\n && (span === src.length))) {\n throw new TypeError(nameWithProperty('Blob.encode', this)\n + ' requires (length ' + span + ') Buffer as src');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n b.write(src.toString('hex'), offset, span, 'hex');\n if (this.length instanceof ExternalLayout) {\n this.length.encode(span, b, offset);\n }\n return span;\n }\n}\n\n/**\n * Contain a `NUL`-terminated UTF8 string.\n *\n * *Factory*: {@link module:Layout.cstr|cstr}\n *\n * **NOTE** Any UTF8 string that incorporates a zero-valued byte will\n * not be correctly decoded by this layout.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass CString extends Layout {\n constructor(property) {\n super(-1, property);\n }\n\n /** @override */\n getSpan(b, offset) {\n if (!Buffer.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n if (undefined === offset) {\n offset = 0;\n }\n let idx = offset;\n while ((idx < b.length) && (0 !== b[idx])) {\n idx += 1;\n }\n return 1 + idx - offset;\n }\n\n /** @override */\n decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.getSpan(b, offset);\n return b.slice(offset, offset + span - 1).toString('utf-8');\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n const srcb = new Buffer(src, 'utf8');\n const span = srcb.length;\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(b, offset);\n b[offset + span] = 0;\n return span + 1;\n }\n}\n\n/**\n * Contain a UTF8 string with implicit length.\n *\n * *Factory*: {@link module:Layout.utf8|utf8}\n *\n * **NOTE** Because the length is implicit in the size of the buffer\n * this layout should be used only in isolation, or in a situation\n * where the length can be expressed by operating on a slice of the\n * containing buffer.\n *\n * @param {Number} [maxSpan] - the maximum length allowed for encoded\n * string content. If not provided there is no bound on the allowed\n * content.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass UTF8 extends Layout {\n constructor(maxSpan, property) {\n if (('string' === typeof maxSpan)\n && (undefined === property)) {\n property = maxSpan;\n maxSpan = undefined;\n }\n if (undefined === maxSpan) {\n maxSpan = -1;\n } else if (!Number.isInteger(maxSpan)) {\n throw new TypeError('maxSpan must be an integer');\n }\n\n super(-1, property);\n\n /** The maximum span of the layout in bytes.\n *\n * Positive values are generally expected. Zero is abnormal.\n * Attempts to encode or decode a value that exceeds this length\n * will throw a `RangeError`.\n *\n * A negative value indicates that there is no bound on the length\n * of the content. */\n this.maxSpan = maxSpan;\n }\n\n /** @override */\n getSpan(b, offset) {\n if (!Buffer.isBuffer(b)) {\n throw new TypeError('b must be a Buffer');\n }\n if (undefined === offset) {\n offset = 0;\n }\n return b.length - offset;\n }\n\n /** @override */\n decode(b, offset, dest) {\n if (undefined === offset) {\n offset = 0;\n }\n let span = this.getSpan(b, offset);\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n return b.slice(offset, offset + span).toString('utf-8');\n }\n\n /** @override */\n encode(src, b, offset) {\n if (undefined === offset) {\n offset = 0;\n }\n /* Must force this to a string, lest it be a number and the\n * \"utf8-encoding\" below actually allocate a buffer of length\n * src */\n if ('string' !== typeof src) {\n src = src.toString();\n }\n const srcb = new Buffer(src, 'utf8');\n const span = srcb.length;\n if ((0 <= this.maxSpan)\n && (this.maxSpan < span)) {\n throw new RangeError('text length exceeds maxSpan');\n }\n if ((offset + span) > b.length) {\n throw new RangeError('encoding overruns Buffer');\n }\n srcb.copy(b, offset);\n return span;\n }\n}\n\n/**\n * Contain a constant value.\n *\n * This layout may be used in cases where a JavaScript value can be\n * inferred without an expression in the binary encoding. An example\n * would be a {@link VariantLayout|variant layout} where the content\n * is implied by the union {@link Union#discriminator|discriminator}.\n *\n * @param {Object|Number|String} value - initializer for {@link\n * Constant#value|value}. If the value is an object (or array) and\n * the application intends the object to remain unchanged regardless\n * of what is done to values decoded by this layout, the value should\n * be frozen prior passing it to this constructor.\n *\n * @param {String} [property] - initializer for {@link\n * Layout#property|property}.\n *\n * @augments {Layout}\n */\nclass Constant extends Layout {\n constructor(value, property) {\n super(0, property);\n\n /** The value produced by this constant when the layout is {@link\n * Constant#decode|decoded}.\n *\n * Any JavaScript value including `null` and `undefined` is\n * permitted.\n *\n * **WARNING** If `value` passed in the constructor was not\n * frozen, it is possible for users of decoded values to change\n * the content of the value. */\n this.value = value;\n }\n\n /** @override */\n decode(b, offset, dest) {\n return this.value;\n }\n\n /** @override */\n encode(src, b, offset) {\n /* Constants take no space */\n return 0;\n }\n}\n\nexports.ExternalLayout = ExternalLayout;\nexports.GreedyCount = GreedyCount;\nexports.OffsetLayout = OffsetLayout;\nexports.UInt = UInt;\nexports.UIntBE = UIntBE;\nexports.Int = Int;\nexports.IntBE = IntBE;\nexports.Float = Float;\nexports.FloatBE = FloatBE;\nexports.Double = Double;\nexports.DoubleBE = DoubleBE;\nexports.Sequence = Sequence;\nexports.Structure = Structure;\nexports.UnionDiscriminator = UnionDiscriminator;\nexports.UnionLayoutDiscriminator = UnionLayoutDiscriminator;\nexports.Union = Union;\nexports.VariantLayout = VariantLayout;\nexports.BitStructure = BitStructure;\nexports.BitField = BitField;\nexports.Boolean = Boolean;\nexports.Blob = Blob;\nexports.CString = CString;\nexports.UTF8 = UTF8;\nexports.Constant = Constant;\n\n/** Factory for {@link GreedyCount}. */\nexports.greedy = ((elementSpan, property) => new GreedyCount(elementSpan, property));\n\n/** Factory for {@link OffsetLayout}. */\nexports.offset = ((layout, offset, property) => new OffsetLayout(layout, offset, property));\n\n/** Factory for {@link UInt|unsigned int layouts} spanning one\n * byte. */\nexports.u8 = (property => new UInt(1, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16 = (property => new UInt(2, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24 = (property => new UInt(3, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32 = (property => new UInt(4, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40 = (property => new UInt(5, property));\n\n/** Factory for {@link UInt|little-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48 = (property => new UInt(6, property));\n\n/** Factory for {@link NearUInt64|little-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64 = (property => new NearUInt64(property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning two bytes. */\nexports.u16be = (property => new UIntBE(2, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning three bytes. */\nexports.u24be = (property => new UIntBE(3, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning four bytes. */\nexports.u32be = (property => new UIntBE(4, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning five bytes. */\nexports.u40be = (property => new UIntBE(5, property));\n\n/** Factory for {@link UInt|big-endian unsigned int layouts}\n * spanning six bytes. */\nexports.u48be = (property => new UIntBE(6, property));\n\n/** Factory for {@link NearUInt64BE|big-endian unsigned int\n * layouts} interpreted as Numbers. */\nexports.nu64be = (property => new NearUInt64BE(property));\n\n/** Factory for {@link Int|signed int layouts} spanning one\n * byte. */\nexports.s8 = (property => new Int(1, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning two bytes. */\nexports.s16 = (property => new Int(2, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning three bytes. */\nexports.s24 = (property => new Int(3, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning four bytes. */\nexports.s32 = (property => new Int(4, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning five bytes. */\nexports.s40 = (property => new Int(5, property));\n\n/** Factory for {@link Int|little-endian signed int layouts}\n * spanning six bytes. */\nexports.s48 = (property => new Int(6, property));\n\n/** Factory for {@link NearInt64|little-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64 = (property => new NearInt64(property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning two bytes. */\nexports.s16be = (property => new IntBE(2, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning three bytes. */\nexports.s24be = (property => new IntBE(3, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning four bytes. */\nexports.s32be = (property => new IntBE(4, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning five bytes. */\nexports.s40be = (property => new IntBE(5, property));\n\n/** Factory for {@link Int|big-endian signed int layouts}\n * spanning six bytes. */\nexports.s48be = (property => new IntBE(6, property));\n\n/** Factory for {@link NearInt64BE|big-endian signed int layouts}\n * interpreted as Numbers. */\nexports.ns64be = (property => new NearInt64BE(property));\n\n/** Factory for {@link Float|little-endian 32-bit floating point} values. */\nexports.f32 = (property => new Float(property));\n\n/** Factory for {@link FloatBE|big-endian 32-bit floating point} values. */\nexports.f32be = (property => new FloatBE(property));\n\n/** Factory for {@link Double|little-endian 64-bit floating point} values. */\nexports.f64 = (property => new Double(property));\n\n/** Factory for {@link DoubleBE|big-endian 64-bit floating point} values. */\nexports.f64be = (property => new DoubleBE(property));\n\n/** Factory for {@link Structure} values. */\nexports.struct = ((fields, property, decodePrefixes) => new Structure(fields, property, decodePrefixes));\n\n/** Factory for {@link BitStructure} values. */\nexports.bits = ((word, msb, property) => new BitStructure(word, msb, property));\n\n/** Factory for {@link Sequence} values. */\nexports.seq = ((elementLayout, count, property) => new Sequence(elementLayout, count, property));\n\n/** Factory for {@link Union} values. */\nexports.union = ((discr, defaultLayout, property) => new Union(discr, defaultLayout, property));\n\n/** Factory for {@link UnionLayoutDiscriminator} values. */\nexports.unionLayoutDiscriminator = ((layout, property) => new UnionLayoutDiscriminator(layout, property));\n\n/** Factory for {@link Blob} values. */\nexports.blob = ((length, property) => new Blob(length, property));\n\n/** Factory for {@link CString} values. */\nexports.cstr = (property => new CString(property));\n\n/** Factory for {@link UTF8} values. */\nexports.utf8 = ((maxSpan, property) => new UTF8(maxSpan, property));\n\n/** Factory for {@link Constant} values. */\nexports.const = ((value, property) => new Constant(value, property));\n","import { TransactionInstruction } from \"@solana/web3.js\";\n\nimport { PublicKey } from \"./publicKey\";\n\n/**\n * ID of the memo program.\n */\nexport const MEMO_PROGRAM_ID = new PublicKey(\n \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\"\n);\n\n/**\n * Creates a memo program instruction.\n *\n * More info: https://spl.solana.com/memo\n *\n * @param text Text of the memo.\n * @param signers Optional signers to validate.\n * @returns\n */\nexport const createMemoInstruction = (\n text: string,\n signers: readonly PublicKey[] = []\n): TransactionInstruction => {\n return new TransactionInstruction({\n programId: MEMO_PROGRAM_ID,\n keys: signers.map((s) => ({\n pubkey: s,\n isSigner: true,\n isWritable: false,\n })),\n data: Buffer.from(text, \"utf8\"),\n });\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gatekeeperExists = exports.getGatewayToken = exports.removeAccountChangeListener = exports.onGatewayTokenChange = exports.findGatewayToken = exports.findGatewayTokens = exports.dataToGatewayToken = exports.getGatewayTokenAddressForOwnerAndGatekeeperNetwork = exports.getGatekeeperAccountAddress = void 0;\nconst web3_js_1 = require(\"@solana/web3.js\");\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"../types\");\nconst GatewayTokenData_1 = require(\"./GatewayTokenData\");\n/**\n * Derive the address of the gatekeeper PDA for this gatekeeper\n * @param authority The gatekeeper\n * @param network The network\n */\nconst getGatekeeperAccountAddress = (authority, network) => __awaiter(void 0, void 0, void 0, function* () {\n const publicKeyNonce = yield web3_js_1.PublicKey.findProgramAddress([\n authority.toBuffer(),\n network.toBuffer(),\n Buffer.from(constants_1.GATEKEEPER_NONCE_SEED_STRING, \"utf8\"),\n ], constants_1.PROGRAM_ID);\n return publicKeyNonce[0];\n});\nexports.getGatekeeperAccountAddress = getGatekeeperAccountAddress;\n/**\n * Derive the address of the gateway token PDA for this owner address and optional seed.\n * @param owner The owner of the gateway token\n * @param gatekeeperNetwork The network of the gateway token\n * @param seed An 8-byte seed array, used to add multiple tokens to the same owner. Must be unique to each token, if present\n */\nconst getGatewayTokenAddressForOwnerAndGatekeeperNetwork = (owner, gatekeeperNetwork, seed) => __awaiter(void 0, void 0, void 0, function* () {\n const additionalSeed = seed\n ? Buffer.from(seed)\n : Buffer.from([0, 0, 0, 0, 0, 0, 0, 0]);\n if (additionalSeed.length != 8) {\n throw new Error(\"Additional Seed has length \" +\n additionalSeed.length +\n \" instead of 8 when calling getGatewayTokenAddressForOwnerAndGatekeeperNetwork.\");\n }\n const seeds = [\n owner.toBuffer(),\n Buffer.from(constants_1.GATEWAY_TOKEN_ADDRESS_SEED, \"utf8\"),\n additionalSeed,\n gatekeeperNetwork.toBuffer(),\n ];\n const publicKeyNonce = yield web3_js_1.PublicKey.findProgramAddress(seeds, constants_1.PROGRAM_ID);\n return publicKeyNonce[0];\n});\nexports.getGatewayTokenAddressForOwnerAndGatekeeperNetwork = getGatewayTokenAddressForOwnerAndGatekeeperNetwork;\n// Based on solana/integration-lib/src/state.rs\n// If the optional the parent-gateway-token field is populated, this value will be\n// 34 (2 + 32) instead. TODO IDCOM-320 restructure the gateway token accounts to put\n// all optional values at the end of the struct to simplify account parsing a little\nconst GATEWAY_TOKEN_ACCOUNT_OWNER_FIELD_OFFSET = 2;\n// As above, if optional fields are present, this will differ. TODO IDCOM-320 fixes this\nconst GATEWAY_TOKEN_ACCOUNT_GATEKEEPER_NETWORK_FIELD_OFFSET = 35;\nfunction fromGatewayTokenState(state) {\n if (!!state.active)\n return types_1.State.ACTIVE;\n if (!!state.revoked)\n return types_1.State.REVOKED;\n if (!!state.frozen)\n return types_1.State.FROZEN;\n throw new Error(\"Unrecognised state \" + JSON.stringify(state));\n}\nconst dataToGatewayToken = (data, publicKey) => {\n var _a;\n return new types_1.GatewayToken(data.issuingGatekeeper.toPublicKey(), data.gatekeeperNetwork.toPublicKey(), data.owner.toPublicKey(), fromGatewayTokenState(data.state), publicKey, constants_1.PROGRAM_ID, (_a = data.expiry) === null || _a === void 0 ? void 0 : _a.toNumber());\n};\nexports.dataToGatewayToken = dataToGatewayToken;\n/**\n * Find all gateway tokens for a user on a gatekeeper network, optionally filtering out revoked tokens.\n *\n * Warning - this uses the Solana getProgramAccounts RPC endpoint, which is inefficient and may be\n * blocked by some RPC services.\n *\n * @param connection A solana connection object\n * @param owner The token owner\n * @param gatekeeperNetwork The network to find a token for\n * @param {boolean=false} includeRevoked If false (default), filter out revoked tokens\n * @returns {Promise} All tokens for the owner\n */\nconst findGatewayTokens = (connection, owner, gatekeeperNetwork, includeRevoked = false) => __awaiter(void 0, void 0, void 0, function* () {\n const ownerFilter = {\n memcmp: {\n offset: GATEWAY_TOKEN_ACCOUNT_OWNER_FIELD_OFFSET,\n bytes: owner.toBase58(),\n },\n };\n const gatekeeperNetworkFilter = {\n memcmp: {\n offset: GATEWAY_TOKEN_ACCOUNT_GATEKEEPER_NETWORK_FIELD_OFFSET,\n bytes: gatekeeperNetwork === null || gatekeeperNetwork === void 0 ? void 0 : gatekeeperNetwork.toBase58(),\n },\n };\n const filters = [ownerFilter, gatekeeperNetworkFilter];\n const accountsResponse = yield connection.getProgramAccounts(constants_1.PROGRAM_ID, {\n filters,\n });\n if (!accountsResponse)\n return [];\n const toGatewayToken = ({ pubkey, account, }) => (0, exports.dataToGatewayToken)(GatewayTokenData_1.GatewayTokenData.fromAccount(account.data), pubkey);\n return accountsResponse\n .map(toGatewayToken)\n .filter((gatewayToken) => gatewayToken.state !== types_1.State.REVOKED || includeRevoked);\n});\nexports.findGatewayTokens = findGatewayTokens;\n/**\n * Get a gateway token for the owner and network, if it exists.\n * @param connection A solana connection object\n * @param owner The token owner\n * @param gatekeeperNetwork The network to find a token for\n * @returns Promise An unrevoked token, if one exists for the owner\n */\nconst findGatewayToken = (connection, owner, gatekeeperNetwork) => __awaiter(void 0, void 0, void 0, function* () {\n const gatewayTokenAddress = yield (0, exports.getGatewayTokenAddressForOwnerAndGatekeeperNetwork)(owner, gatekeeperNetwork);\n const account = yield connection.getAccountInfo(gatewayTokenAddress, constants_1.SOLANA_COMMITMENT);\n if (!account)\n return null;\n return (0, exports.dataToGatewayToken)(GatewayTokenData_1.GatewayTokenData.fromAccount(account.data), gatewayTokenAddress);\n});\nexports.findGatewayToken = findGatewayToken;\n/**\n * Register a callback to be called whenever a gateway token changes state\n * @param connection A solana connection object\n * @param gatewayTokenAddress The address of the gateway token\n * @param callback The callback to register\n * @param commitment The solana commitment level at which to register gateway token changes. Defaults to 'confirmed'\n * @return The subscription id\n */\nconst onGatewayTokenChange = (connection, gatewayTokenAddress, callback, commitment = constants_1.SOLANA_COMMITMENT) => {\n const accountCallback = (accountInfo) => {\n const gatewayToken = (0, exports.dataToGatewayToken)(GatewayTokenData_1.GatewayTokenData.fromAccount(accountInfo.data), gatewayTokenAddress);\n callback(gatewayToken);\n };\n return connection.onAccountChange(gatewayTokenAddress, accountCallback, commitment);\n};\nexports.onGatewayTokenChange = onGatewayTokenChange;\n/**\n * Stops listening to gateway state changes\n * @param connection A solana connection object\n * @param id The subscription id to deregister\n */\nconst removeAccountChangeListener = (connection, id) => connection.removeAccountChangeListener(id);\nexports.removeAccountChangeListener = removeAccountChangeListener;\n/**\n * Lookup the gateway token at a given address\n * @param connection A solana connection object\n * @param gatewayTokenAddress The address of the gateway token\n */\nconst getGatewayToken = (connection, gatewayTokenAddress) => __awaiter(void 0, void 0, void 0, function* () {\n const account = yield connection.getAccountInfo(gatewayTokenAddress, constants_1.SOLANA_COMMITMENT);\n if (!account)\n return null;\n return (0, exports.dataToGatewayToken)(GatewayTokenData_1.GatewayTokenData.fromAccount(account.data), gatewayTokenAddress);\n});\nexports.getGatewayToken = getGatewayToken;\n/**\n * Returns whether or not a gatekeeper exists from a network and authority\n * @param connection A solana connection\n * @param gatekeeperAuthority The authority of the gatekeeper\n * @param gatekeeperNetwork The network of the gatekeeper\n */\nconst gatekeeperExists = (connection, gatekeeperAuthority, gatekeeperNetwork) => __awaiter(void 0, void 0, void 0, function* () {\n const gatekeeperAccount = yield (0, exports.getGatekeeperAccountAddress)(gatekeeperAuthority, gatekeeperNetwork);\n const account = yield connection.getAccountInfo(gatekeeperAccount, constants_1.SOLANA_COMMITMENT);\n return account != null && account.owner == constants_1.PROGRAM_ID;\n});\nexports.gatekeeperExists = gatekeeperExists;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GatewayToken = exports.State = void 0;\nconst GatewayTokenData_1 = require(\"../lib/GatewayTokenData\");\nconst util_1 = require(\"../lib/util\");\nvar State;\n(function (State) {\n State[\"ACTIVE\"] = \"ACTIVE\";\n State[\"REVOKED\"] = \"REVOKED\";\n State[\"FROZEN\"] = \"FROZEN\";\n})(State = exports.State || (exports.State = {}));\nclass GatewayToken {\n constructor(\n // the key used to reference the issuing gatekeeper\n issuingGatekeeper, gatekeeperNetwork, owner, state, publicKey, programId, expiryTime) {\n this.issuingGatekeeper = issuingGatekeeper;\n this.gatekeeperNetwork = gatekeeperNetwork;\n this.owner = owner;\n this.state = state;\n this.publicKey = publicKey;\n this.programId = programId;\n this.expiryTime = expiryTime;\n }\n isValid() {\n return this.state === State.ACTIVE && !this.hasExpired();\n }\n hasExpired() {\n const now = Math.floor(Date.now() / 1000);\n return !!this.expiryTime && now > this.expiryTime;\n }\n static fromAccount(accountInfo, key) {\n const parsedData = GatewayTokenData_1.GatewayTokenData.fromAccount(accountInfo.data);\n return (0, util_1.dataToGatewayToken)(parsedData, key);\n }\n update({ state, expiryTime, }) {\n return new GatewayToken(this.issuingGatekeeper, this.gatekeeperNetwork, this.owner, state, this.publicKey, this.programId, expiryTime || this.expiryTime);\n }\n}\nexports.GatewayToken = GatewayToken;\n//# sourceMappingURL=index.js.map","\"use strict\";\n/* eslint-disable global-require */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst logger_1 = __importDefault(require(\"../logger\"));\nlet clientVersion = '';\nconst getVersion = () => {\n if (clientVersion)\n return clientVersion;\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const packageJson = require('../../../package.json');\n if (packageJson) {\n clientVersion = `${packageJson.name}:${packageJson.version}`;\n }\n }\n catch (error) {\n logger_1.default.error('Error retrieving version from ../../package.json');\n }\n return clientVersion;\n};\nexports.default = getVersion;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingProvider = exports.DEFAULT_LOG_LEVEL = exports.allowLogging = void 0;\nconst logLevels = ['debug', 'info', 'warn', 'error'];\nconst allowLogging = (logLevel, atLeastlogLevel) => logLevels.indexOf(logLevel) <= logLevels.indexOf(atLeastlogLevel);\nexports.allowLogging = allowLogging;\nexports.DEFAULT_LOG_LEVEL = process.env.REACT_APP_LOG_LEVEL || 'warn';\nclass LoggingProvider {\n constructor(logger, logLevel = exports.DEFAULT_LOG_LEVEL) {\n this.logger = logger;\n if (typeof window !== 'undefined') {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const urllogLevel = urlSearchParams.get('logLevel');\n this.logLevel = urllogLevel || logLevel;\n }\n else {\n this.logLevel = logLevel;\n }\n }\n debug(message, object) {\n if ((0, exports.allowLogging)(this.logLevel, 'debug'))\n this.logger.debug(message, object);\n }\n info(message, object) {\n if ((0, exports.allowLogging)(this.logLevel, 'info'))\n this.logger.info(message, object);\n }\n warn(message, object) {\n if ((0, exports.allowLogging)(this.logLevel, 'warn'))\n this.logger.warn(message, object);\n }\n error(message, exception) {\n if ((0, exports.allowLogging)(this.logLevel, 'error'))\n this.logger.error(message, exception);\n }\n}\nexports.LoggingProvider = LoggingProvider;\n","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, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// @flow\nimport type { Interpolation } from '../types';\n\nexport default (\n strings: Array,\n interpolations: Array\n): Array => {\n const result = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n};\n","// @flow\nimport { typeOf } from 'react-is';\n\nexport default (x: any): boolean =>\n x !== null &&\n typeof x === 'object' &&\n (x.toString ? x.toString() : Object.prototype.toString.call(x)) === '[object Object]' &&\n !typeOf(x);\n","// @flow\nexport const EMPTY_ARRAY = Object.freeze([]);\nexport const EMPTY_OBJECT = Object.freeze({});\n","// @flow\nexport default function isFunction(test: any): boolean %checks {\n return typeof test === 'function';\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function getComponentName(\n target: $PropertyType\n): string {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n // $FlowFixMe\n target.displayName ||\n // $FlowFixMe\n target.name ||\n 'Component'\n );\n}\n","// @flow\nexport default function isStyledComponent(target: any): boolean %checks {\n return target && typeof target.styledComponentId === 'string';\n}\n","// @flow\n\ndeclare var SC_DISABLE_SPEEDY: ?boolean;\ndeclare var __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY =\n Boolean(typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : (typeof process !== 'undefined' && typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' && process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false' ? false : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : (typeof process !== 'undefined' && typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' && process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false' ? false : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n )\n ));\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","// @flow\nimport errorMap from './errors';\n\nconst ERRORS = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: Array\n) {\n if (process.env.NODE_ENV === 'production') {\n throw new Error(\n `An error occurred. See https://git.io/JUIaE#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n throw new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport type { GroupedTag, Tag } from './types';\nimport { SPLITTER } from '../constants';\nimport throwStyledError from '../utils/error';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag): GroupedTag => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nclass DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n\n length: number;\n\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number): number {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]): void {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throwStyledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number): void {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number): string {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n}\n","// @flow\n\nimport throwStyledError from '../utils/error';\n\nconst MAX_SMI = 1 << 31 - 1;\n\nlet groupIDRegister: Map = new Map();\nlet reverseRegister: Map = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return (groupIDRegister.get(id): any);\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (\n process.env.NODE_ENV !== 'production' &&\n ((group | 0) < 0 || group > MAX_SMI)\n ) {\n throwStyledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n if (group >= nextFreeGroup) {\n nextFreeGroup = group + 1;\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","// @flow\n\nimport { SPLITTER, SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport type { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (!names || !rules || !names.size) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n // eslint-disable-next-line\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent || '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = ((nodes[i]: any): HTMLStyleElement);\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","// @flow\n/* eslint-disable camelcase, no-undef */\n\ndeclare var window: { __webpack_nonce__: string };\n\nconst getNonce = () => {\n\n return typeof window !== 'undefined'\n ? typeof window.__webpack_nonce__ !== 'undefined'\n ? window.__webpack_nonce__\n : null\n : null;\n};\n\nexport default getNonce;\n","// @flow\n\nimport { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport getNonce from '../utils/nonce';\nimport throwStyledError from '../utils/error';\n\nconst ELEMENT_TYPE = 1; /* Node.ELEMENT_TYPE */\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: HTMLElement): void | HTMLStyleElement => {\n const { childNodes } = target;\n\n for (let i = childNodes.length; i >= 0; i--) {\n const child = ((childNodes[i]: any): ?HTMLElement);\n if (child && child.nodeType === ELEMENT_TYPE && child.hasAttribute(SC_ATTR)) {\n return ((child: any): HTMLStyleElement);\n }\n }\n\n return undefined;\n};\n\n/** Create a style element inside `target` or after the last */\nexport const makeStyleTag = (target?: HTMLElement): HTMLStyleElement => {\n const head = ((document.head: any): HTMLElement);\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return ((tag.sheet: any): CSSStyleSheet);\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return ((sheet: any): CSSStyleSheet);\n }\n }\n\n throwStyledError(17);\n return (undefined: any);\n};\n","// @flow\n/* eslint-disable no-use-before-define */\n\nimport { makeStyleTag, getSheet } from './dom';\nimport type { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions): Tag => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n\n // Avoid Edge bug where empty style elements don't create sheets\n element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule !== undefined && typeof rule.cssText === 'string') {\n return rule.cssText;\n } else {\n return '';\n }\n }\n}\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport class TextTag implements Tag {\n element: HTMLStyleElement;\n\n nodes: NodeList;\n\n length: number;\n\n constructor(target?: HTMLElement) {\n const element = (this.element = makeStyleTag(target));\n this.nodes = element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.nodes[index].textContent;\n } else {\n return '';\n }\n }\n}\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: HTMLElement) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number): string {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n}\n","// @flow\nimport { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport type { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean,\n useCSSOMInjection?: boolean,\n target?: HTMLElement,\n};\n\ntype GlobalStylesAllocationMap = { [key: string]: number };\ntype NamesAllocationMap = Map>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n\n names: NamesAllocationMap;\n\n options: SheetOptions;\n\n server: boolean;\n\n tag: void | GroupedTag;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT,\n globalStyles?: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames?: boolean = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag(): GroupedTag {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id): any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id): any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id): any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n\n /** Outputs the current sheet as a CSS string with markers for SSR */\n toString(): string {\n return outputSheet(this);\n }\n}\n","// @flow\n/* eslint-disable no-bitwise */\n\nconst AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number): string =>\n String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number): string {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","// @flow\n/* eslint-disable */\n\nexport const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string): number => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string): number => {\n return phash(SEED, x);\n};\n","// @flow\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\nimport type { RuleSet } from '../types';\n\nexport default function isStaticRules(rules: RuleSet): boolean {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","// @flow\nimport { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n\n baseStyle: ?ComponentStyle;\n\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n staticRulesId: string;\n\n constructor(rules: RuleSet, componentId: string, baseStyle?: ComponentStyle) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic = process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n this.baseHash = phash(SEED, componentId);\n\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n /*\n * Flattens a rule set into valid CSS\n * Hashes it, wraps the whole chunk in a .hash1234 {}\n * Returns the hash to be injected on render()\n * */\n generateAndInjectStyles(executionContext: Object, styleSheet: StyleSheet, stylis: Stringifier) {\n const { componentId } = this;\n\n const names = [];\n\n if (this.baseStyle) {\n names.push(this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis));\n }\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(componentId, this.staticRulesId)) {\n names.push(this.staticRulesId);\n } else {\n const cssStatic = flatten(this.rules, executionContext, styleSheet, stylis).join('');\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, componentId);\n\n styleSheet.insertRules(componentId, name, cssStaticFormatted);\n }\n\n names.push(name);\n this.staticRulesId = name;\n }\n } else {\n const { length } = this.rules;\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule + i);\n } else if (partRule) {\n const partChunk = flatten(partRule, executionContext, styleSheet, stylis);\n const partString = Array.isArray(partChunk) ? partChunk.join('') : partChunk;\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(componentId, name)) {\n const cssFormatted = stylis(css, `.${name}`, undefined, componentId);\n styleSheet.insertRules(componentId, name, cssFormatted);\n }\n\n names.push(name);\n }\n }\n\n return names.join(' ');\n }\n}\n","import Stylis from '@emotion/stylis';\nimport { type Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { phash, SEED } from './hash';\nimport insertRulePlugin from './stylisPluginInsertRule';\n\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\nconst COMPLEX_SELECTOR_PREFIX = [':', '[', '.', '#'];\n\ntype StylisInstanceConstructorArgs = {\n options?: Object,\n plugins?: Array,\n};\n\nexport default function createStylisInstance({\n options = EMPTY_OBJECT,\n plugins = EMPTY_ARRAY,\n}: StylisInstanceConstructorArgs = EMPTY_OBJECT) {\n const stylis = new Stylis(options);\n\n // Wrap `insertRulePlugin to build a list of rules,\n // and then make our own plugin to return the rules. This\n // makes it easier to hook into the existing SSR architecture\n\n let parsingRules = [];\n\n // eslint-disable-next-line consistent-return\n const returnRulesPlugin = context => {\n if (context === -2) {\n const parsedRules = parsingRules;\n parsingRules = [];\n return parsedRules;\n }\n };\n\n const parseRulesPlugin = insertRulePlugin(rule => {\n parsingRules.push(rule);\n });\n\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n let _consecutiveSelfRefRegExp: RegExp;\n\n const selfReferenceReplacer = (match, offset, string) => {\n if (\n // do not replace the first occurrence if it is complex (has a modifier)\n (offset === 0 ? COMPLEX_SELECTOR_PREFIX.indexOf(string[_selector.length]) === -1 : true) &&\n // no consecutive self refs (.b.b); that is a precedence boost and treated differently\n !string.match(_consecutiveSelfRefRegExp)\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v3.5.4#plugins <- more info about the context phase values\n * \"2\" means this plugin is taking effect at the very end after all other processing is complete\n */\n const selfReferenceReplacementPlugin = (context, _, selectors) => {\n if (context === 2 && selectors.length && selectors[0].lastIndexOf(_selector) > 0) {\n // eslint-disable-next-line no-param-reassign\n selectors[0] = selectors[0].replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n stylis.use([...plugins, selfReferenceReplacementPlugin, parseRulesPlugin, returnRulesPlugin]);\n\n function stringifyRules(css, selector, prefix, componentId = '&'): Stringifier {\n const flatCSS = css.replace(COMMENT_REGEX, '');\n const cssStr = selector && prefix ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS;\n\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n _consecutiveSelfRefRegExp = new RegExp(`(\\\\${_selector}\\\\b){2,}`);\n\n return stylis(prefix || !selector ? '' : selector, cssStr);\n }\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2016 Sultan Tarimo\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * 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 MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR\n * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/* eslint-disable */\n\nexport default function(insertRule) {\n const delimiter = '/*|*/';\n const needle = `${delimiter}}`;\n\n function toSheet(block) {\n if (block) {\n try {\n insertRule(`${block}}`);\n } catch (e) {}\n }\n }\n\n return function ruleSheet(\n context,\n content,\n selectors,\n parents,\n line,\n column,\n length,\n ns,\n depth,\n at\n ) {\n switch (context) {\n // property\n case 1:\n // @import\n if (depth === 0 && content.charCodeAt(0) === 64) return insertRule(`${content};`), '';\n break;\n // selector\n case 2:\n if (ns === 0) return content + delimiter;\n break;\n // at-rule\n case 3:\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n return insertRule(selectors[0] + content), '';\n default:\n return content + (at === 0 ? delimiter : '');\n }\n case -2:\n content.split(needle).forEach(toSheet);\n }\n };\n}\n","// @flow\nimport React, { type Context, type Node, useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport StyleSheet from '../sheet';\nimport type { Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\ntype Props = {\n children?: Node,\n disableCSSOMInjection?: boolean,\n disableVendorPrefixes?: boolean,\n sheet?: StyleSheet,\n stylisPlugins?: Array,\n target?: HTMLElement,\n};\n\nexport const StyleSheetContext: Context = React.createContext();\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\nexport const StylisContext: Context = React.createContext();\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport const masterSheet: StyleSheet = new StyleSheet();\nexport const masterStylis: Stringifier = createStylisInstance();\n\nexport function useStyleSheet(): StyleSheet {\n return useContext(StyleSheetContext) || masterSheet;\n}\n\nexport function useStylis(): Stringifier {\n return useContext(StylisContext) || masterStylis;\n}\n\nexport default function StyleSheetManager(props: Props) {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const contextStyleSheet = useStyleSheet();\n\n const styleSheet = useMemo(() => {\n let sheet = contextStyleSheet;\n\n if (props.sheet) {\n // eslint-disable-next-line prefer-destructuring\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { prefix: !props.disableVendorPrefixes },\n plugins,\n }),\n [props.disableVendorPrefixes, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n return (\n \n \n {process.env.NODE_ENV !== 'production'\n ? React.Children.only(props.children)\n : props.children}\n \n \n );\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport { type Stringifier } from '../types';\nimport throwStyledError from '../utils/error';\nimport { masterStylis } from './StyleSheetManager';\n\nexport default class Keyframes {\n id: string;\n\n name: string;\n\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = masterStylis) => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n toString = () => {\n return throwStyledError(12, String(this.name));\n };\n\n getName(stylisInstance: Stringifier = masterStylis) {\n return this.name + stylisInstance.hash;\n }\n}\n","// @flow\n\n/**\n * inlined version of\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js\n */\n\nconst uppercaseCheck = /([A-Z])/;\nconst uppercasePattern = /([A-Z])/g;\nconst msPattern = /^ms-/;\nconst prefixAndLowerCase = (char: string): string => `-${char.toLowerCase()}`;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nexport default function hyphenateStyleName(string: string): string {\n return uppercaseCheck.test(string)\n ? string\n .replace(uppercasePattern, prefixAndLowerCase)\n .replace(msPattern, '-ms-')\n : string;\n}\n","// @flow\nimport { isElement } from 'react-is';\nimport getComponentName from './getComponentName';\nimport isFunction from './isFunction';\nimport isStatelessFunction from './isStatelessFunction';\nimport isPlainObject from './isPlainObject';\nimport isStyledComponent from './isStyledComponent';\nimport Keyframes from '../models/Keyframes';\nimport hyphenate from './hyphenateStyleName';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { type Stringifier } from '../types';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = chunk => chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Object, prevKey?: string): Array => {\n const rules = [];\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || isFalsish(obj[key])) continue;\n\n if ((Array.isArray(obj[key]) && obj[key].isCss) || isFunction(obj[key])) {\n rules.push(`${hyphenate(key)}:`, obj[key], ';');\n } else if (isPlainObject(obj[key])) {\n rules.push(...objToCssArray(obj[key], key));\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, obj[key])};`);\n }\n }\n\n return prevKey ? [`${prevKey} {`, ...rules, '}'] : rules;\n};\n\nexport default function flatten(\n chunk: any,\n executionContext: ?Object,\n styleSheet: ?Object,\n stylisInstance: ?Stringifier\n): any {\n if (Array.isArray(chunk)) {\n const ruleSet = [];\n\n for (let i = 0, len = chunk.length, result; i < len; i += 1) {\n result = flatten(chunk[i], executionContext, styleSheet, stylisInstance);\n\n if (result === '') continue;\n else if (Array.isArray(result)) ruleSet.push(...result);\n else ruleSet.push(result);\n }\n\n return ruleSet;\n }\n\n if (isFalsish(chunk)) {\n return '';\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return `.${chunk.styledComponentId}`;\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (process.env.NODE_ENV !== 'production' && isElement(result)) {\n // eslint-disable-next-line no-console\n console.warn(\n `${getComponentName(\n chunk\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten(result, executionContext, styleSheet, stylisInstance);\n } else return chunk;\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return chunk.getName(stylisInstance);\n } else return chunk;\n }\n\n /* Handle objects */\n return isPlainObject(chunk) ? objToCssArray(chunk) : chunk.toString();\n}\n","// @flow\nexport default function isStatelessFunction(test: any): boolean {\n return (\n typeof test === 'function'\n && !(\n test.prototype\n && test.prototype.isReactComponent\n )\n );\n}\n","// @flow\nimport unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any): any {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n // $FlowFixMe\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless)) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return String(value).trim();\n}\n","// @flow\nimport interleave from '../utils/interleave';\nimport isPlainObject from '../utils/isPlainObject';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport isFunction from '../utils/isFunction';\nimport flatten from '../utils/flatten';\nimport type { Interpolation, RuleSet, Styles } from '../types';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = arg => {\n if (Array.isArray(arg)) {\n // eslint-disable-next-line no-param-reassign\n arg.isCss = true;\n }\n return arg;\n};\n\nexport default function css(styles: Styles, ...interpolations: Array): RuleSet {\n if (isFunction(styles) || isPlainObject(styles)) {\n // $FlowFixMe\n return addTag(flatten(interleave(EMPTY_ARRAY, [styles, ...interpolations])));\n }\n\n if (interpolations.length === 0 && styles.length === 1 && typeof styles[0] === 'string') {\n // $FlowFixMe\n return styles;\n }\n\n // $FlowFixMe\n return addTag(flatten(interleave(styles, interpolations)));\n}\n","// @flow\n\nimport { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error // eslint-disable-line no-console\n try {\n let didNotCallInvalidHook = true\n /* $FlowIgnore[cannot-write] */\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => { // eslint-disable-line no-console\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n }\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n // eslint-disable-next-line no-console\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(error.message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n /* $FlowIgnore[cannot-write] */\n console.error = originalConsoleError; // eslint-disable-line no-console\n }\n }\n};\n","// @flow\nimport { EMPTY_OBJECT } from './empties';\n\ntype Props = {\n theme?: any,\n};\n\nexport default (props: Props, providedTheme: any, defaultProps: any = EMPTY_OBJECT) => {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n};\n","// @flow\n\n// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string): string {\n return (\n str\n // Replace all possible CSS selectors\n .replace(escapeRegex, '-')\n\n // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '')\n );\n}\n","// @flow\n/* eslint-disable */\nimport generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default (str: string): string => {\n return generateAlphabeticName(hash(str) >>> 0);\n};\n","// @flow\nimport type { IStyledComponent } from '../types';\n\nexport default function isTag(target: $PropertyType): boolean %checks {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","/* eslint-disable */\n/**\n mixin-deep; https://github.com/jonschlinkert/mixin-deep\n Inlined such that it will be consistently transpiled to an IE-compatible syntax.\n\n The MIT License (MIT)\n\n Copyright (c) 2014-present, Jon Schlinkert.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n\nconst isObject = val => {\n return (\n typeof val === 'function' || (typeof val === 'object' && val !== null && !Array.isArray(val))\n );\n};\n\nconst isValidKey = key => {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n};\n\nfunction mixin(target, val, key) {\n const obj = target[key];\n if (isObject(val) && isObject(obj)) {\n mixinDeep(obj, val);\n } else {\n target[key] = val;\n }\n}\n\nexport default function mixinDeep(target, ...rest) {\n for (const obj of rest) {\n if (isObject(obj)) {\n for (const key in obj) {\n if (isValidKey(key)) {\n mixin(target, obj[key], key);\n }\n }\n }\n }\n\n return target;\n}\n","// @flow\nimport React, { useContext, useMemo, type Element, type Context } from 'react';\nimport throwStyledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\nexport type Theme = { [key: string]: mixed };\n\ntype ThemeArgument = Theme | ((outerTheme?: Theme) => Theme);\n\ntype Props = {\n children?: Element,\n theme: ThemeArgument,\n};\n\nexport const ThemeContext: Context = React.createContext();\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: Theme): Theme {\n if (!theme) {\n return throwStyledError(14);\n }\n\n if (isFunction(theme)) {\n const mergedTheme = theme(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n return throwStyledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n return throwStyledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props) {\n const outerTheme = useContext(ThemeContext);\n const themeContext = useMemo(() => mergeTheme(props.theme, outerTheme), [\n props.theme,\n outerTheme,\n ]);\n\n if (!props.children) {\n return null;\n }\n\n return {props.children};\n}\n","// @flow\nimport validAttr from '@emotion/is-prop-valid';\nimport hoist from 'hoist-non-react-statics';\nimport React, { createElement, type Ref, useContext, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n Attrs,\n IStyledComponent,\n IStyledStatics,\n RuleSet,\n ShouldForwardProp,\n Target,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport getComponentName from '../utils/getComponentName';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport joinStrings from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheet, useStylis } from './StyleSheetManager';\nimport { ThemeContext } from './ThemeProvider';\n\nconst identifiers = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(displayName?: string, parentComponentId?: string) {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useResolvedAttrs(theme: any = EMPTY_OBJECT, props: Config, attrs: Attrs) {\n // NOTE: can't memoize this\n // returns [context, resolvedAttrs]\n // where resolvedAttrs is only the things injected by the attrs themselves\n const context = { ...props, theme };\n const resolvedAttrs = {};\n\n attrs.forEach(attrDef => {\n let resolvedAttrDef = attrDef;\n let key;\n\n if (isFunction(resolvedAttrDef)) {\n resolvedAttrDef = resolvedAttrDef(context);\n }\n\n /* eslint-disable guard-for-in */\n for (key in resolvedAttrDef) {\n context[key] = resolvedAttrs[key] =\n key === 'className'\n ? joinStrings(resolvedAttrs[key], resolvedAttrDef[key])\n : resolvedAttrDef[key];\n }\n /* eslint-enable guard-for-in */\n });\n\n return [context, resolvedAttrs];\n}\n\nfunction useInjectedStyle(\n componentStyle: ComponentStyle,\n isStatic: boolean,\n resolvedAttrs: T,\n warnTooManyClasses?: $Call\n) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n\n const className = isStatic\n ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis)\n : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n if (process.env.NODE_ENV !== 'production' && !isStatic && warnTooManyClasses) {\n warnTooManyClasses(className);\n }\n\n return className;\n}\n\nfunction useStyledComponentImpl(\n forwardedComponent: IStyledComponent,\n props: Object,\n forwardedRef: Ref,\n isStatic: boolean\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n shouldForwardProp,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, useContext(ThemeContext), defaultProps);\n\n const [context, attrs] = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs);\n\n const generatedClassName = useInjectedStyle(\n componentStyle,\n isStatic,\n context,\n process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined\n );\n\n const refToForward = forwardedRef;\n\n const elementToBeCreated: Target = attrs.$as || props.$as || attrs.as || props.as || target;\n\n const isTargetTag = isTag(elementToBeCreated);\n const computedProps = attrs !== props ? { ...props, ...attrs } : props;\n const propsForElement = {};\n\n // eslint-disable-next-line guard-for-in\n for (const key in computedProps) {\n if (key[0] === '$' || key === 'as') continue;\n else if (key === 'forwardedAs') {\n propsForElement.as = computedProps[key];\n } else if (\n shouldForwardProp\n ? shouldForwardProp(key, validAttr, elementToBeCreated)\n : isTargetTag\n ? validAttr(key)\n : true\n ) {\n // Don't pass through non HTML tags through to HTML elements\n propsForElement[key] = computedProps[key];\n }\n }\n\n if (props.style && attrs.style !== props.style) {\n propsForElement.style = { ...props.style, ...attrs.style };\n }\n\n propsForElement.className = Array.prototype\n .concat(\n foldedComponentIds,\n styledComponentId,\n generatedClassName !== styledComponentId ? generatedClassName : null,\n props.className,\n attrs.className\n )\n .filter(Boolean)\n .join(' ');\n\n propsForElement.ref = refToForward;\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nexport default function createStyledComponent(\n target: $PropertyType,\n options: {\n attrs?: Attrs,\n componentId: string,\n displayName?: string,\n parentComponentId?: string,\n shouldForwardProp?: ShouldForwardProp,\n },\n rules: RuleSet\n) {\n const isTargetStyledComp = isStyledComponent(target);\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && ((target: any): IStyledComponent).attrs\n ? Array.prototype.concat(((target: any): IStyledComponent).attrs, attrs).filter(Boolean)\n : attrs;\n\n // eslint-disable-next-line prefer-destructuring\n let shouldForwardProp = options.shouldForwardProp;\n\n if (isTargetStyledComp && target.shouldForwardProp) {\n if (options.shouldForwardProp) {\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, filterFn, elementToBeCreated) =>\n ((((target: any): IStyledComponent).shouldForwardProp: any): ShouldForwardProp)(\n prop,\n filterFn,\n elementToBeCreated\n ) &&\n ((options.shouldForwardProp: any): ShouldForwardProp)(prop, filterFn, elementToBeCreated);\n } else {\n // eslint-disable-next-line prefer-destructuring\n shouldForwardProp = ((target: any): IStyledComponent).shouldForwardProp;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? ((target: Object).componentStyle: ComponentStyle) : undefined\n );\n\n // statically styled-components don't need to build an execution context object,\n // and shouldn't be increasing the number of class names\n const isStatic = componentStyle.isStatic && attrs.length === 0;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent: IStyledComponent;\n\n const forwardRef = (props, ref) =>\n // eslint-disable-next-line\n useStyledComponentImpl(WrappedStyledComponent, props, ref, isStatic);\n\n forwardRef.displayName = displayName;\n\n WrappedStyledComponent = ((React.forwardRef(forwardRef): any): IStyledComponent);\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? Array.prototype.concat(\n ((target: any): IStyledComponent).foldedComponentIds,\n ((target: any): IStyledComponent).styledComponentId\n )\n : EMPTY_ARRAY;\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp\n ? ((target: any): IStyledComponent).target\n : target;\n\n WrappedStyledComponent.withComponent = function withComponent(tag: Target) {\n const { componentId: previousComponentId, ...optionsToCopy } = options;\n\n const newComponentId =\n previousComponentId &&\n `${previousComponentId}-${isTag(tag) ? tag : escape(getComponentName(tag))}`;\n\n const newOptions = {\n ...optionsToCopy,\n attrs: finalAttrs,\n componentId: newComponentId,\n };\n\n return createStyledComponent(tag, newOptions, rules);\n };\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, ((target: any): IStyledComponent).defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n WrappedStyledComponent.toString = () => `.${WrappedStyledComponent.styledComponentId}`;\n\n if (isCompositeComponent) {\n hoist<\n IStyledStatics,\n $PropertyType,\n { [key: $Keys]: true }\n >(WrappedStyledComponent, ((target: any): $PropertyType), {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n withComponent: true,\n });\n }\n\n return WrappedStyledComponent;\n}\n","// @flow\nimport type { IStyledComponent } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(\n target: $PropertyType\n): string {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport default function joinStrings(a: ?String, b: ?String): ?String {\n return a && b ? `${a} ${b}` : a || b;\n}\n","// @flow\n// Thanks to ReactDOMFactories for this handy list!\n\nexport default [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n\n // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'textPath',\n 'tspan',\n];\n","// @flow\nimport constructWithOptions from './constructWithOptions';\nimport StyledComponent from '../models/StyledComponent';\nimport domElements from '../utils/domElements';\n\nimport type { Target } from '../types';\n\nconst styled = (tag: Target) => constructWithOptions(StyledComponent, tag);\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n styled[domElement] = styled(domElement);\n});\n\nexport default styled;\n","// @flow\nimport { isValidElementType } from 'react-is';\nimport css from './css';\nimport throwStyledError from '../utils/error';\nimport { EMPTY_OBJECT } from '../utils/empties';\n\nimport type { Target } from '../types';\n\nexport default function constructWithOptions(\n componentConstructor: Function,\n tag: Target,\n options: Object = EMPTY_OBJECT\n) {\n if (!isValidElementType(tag)) {\n return throwStyledError(1, String(tag));\n }\n\n /* This is callable directly as a template function */\n // $FlowFixMe: Not typed to avoid destructuring arguments\n const templateFunction = (...args) => componentConstructor(tag, options, css(...args));\n\n /* If config methods are called, wrap up a new template function and merge options */\n templateFunction.withConfig = config =>\n constructWithOptions(componentConstructor, tag, { ...options, ...config });\n\n /* Modify/inject new props at runtime */\n templateFunction.attrs = attrs =>\n constructWithOptions(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n return templateFunction;\n}\n","// @flow\nimport StyleSheet from '../sheet';\nimport type { RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\n\nexport default class GlobalStyle {\n componentId: string;\n\n isStatic: boolean;\n\n rules: RuleSet;\n\n constructor(rules: RuleSet, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n const flatCSS = flatten(this.rules, executionContext, styleSheet, stylis);\n const css = stylis(flatCSS.join(''), '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet) {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: Object,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ) {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","// @flow\nimport React, { useContext, useLayoutEffect, useRef } from 'react';\nimport { STATIC_EXECUTION_CONTEXT } from '../constants';\nimport GlobalStyle from '../models/GlobalStyle';\nimport { useStyleSheet, useStylis } from '../models/StyleSheetManager';\nimport { ThemeContext } from '../models/ThemeProvider';\nimport type { Interpolation } from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport determineTheme from '../utils/determineTheme';\nimport generateComponentId from '../utils/generateComponentId';\nimport css from './css';\n\ndeclare var __SERVER__: boolean;\n\ntype GlobalStyleComponentPropsType = Object;\n\nexport default function createGlobalStyle(\n strings: Array,\n ...interpolations: Array\n) {\n const rules = css(strings, ...interpolations);\n const styledComponentId = `sc-global-${generateComponentId(JSON.stringify(rules))}`;\n const globalStyle = new GlobalStyle(rules, styledComponentId);\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(styledComponentId);\n }\n\n function GlobalStyleComponent(props: GlobalStyleComponentPropsType) {\n const styleSheet = useStyleSheet();\n const stylis = useStylis();\n const theme = useContext(ThemeContext);\n const instanceRef = useRef(styleSheet.allocateGSInstance(styledComponentId));\n\n const instance = instanceRef.current;\n\n if (process.env.NODE_ENV !== 'production' && React.Children.count(props.children)) {\n // eslint-disable-next-line no-console\n console.warn(\n `The global style component ${styledComponentId} was given child JSX. createGlobalStyle does not render children.`\n );\n }\n\n if (\n process.env.NODE_ENV !== 'production' &&\n rules.some(rule => typeof rule === 'string' && rule.indexOf('@import') !== -1)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n `Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.`\n );\n }\n\n if (styleSheet.server) {\n renderStyles(instance, props, styleSheet, theme, stylis);\n }\n\n if (!__SERVER__) {\n // this conditional is fine because it is compiled away for the relevant builds during minification,\n // resulting in a single unguarded hook call\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!styleSheet.server) {\n renderStyles(instance, props, styleSheet, theme, stylis);\n return () => globalStyle.removeStyles(instance, styleSheet);\n }\n }, [instance, props, styleSheet, theme, stylis]);\n }\n\n return null;\n }\n\n function renderStyles(instance, props, styleSheet, theme, stylis) {\n if (globalStyle.isStatic) {\n globalStyle.renderStyles(instance, STATIC_EXECUTION_CONTEXT, styleSheet, stylis);\n } else {\n const context = {\n ...props,\n theme: determineTheme(props, theme, GlobalStyleComponent.defaultProps),\n };\n\n globalStyle.renderStyles(instance, context, styleSheet, stylis);\n }\n }\n\n // $FlowFixMe\n return React.memo(GlobalStyleComponent);\n}\n","// @flow\n\nimport css from './css';\nimport generateComponentId from '../utils/generateComponentId';\nimport Keyframes from '../models/Keyframes';\n\nimport type { Interpolation, Styles } from '../types';\n\nexport default function keyframes(\n strings: Styles,\n ...interpolations: Array\n): Keyframes {\n /* Warning if you've used keyframes on React Native */\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n '`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.'\n );\n }\n\n const rules = css(strings, ...interpolations).join('');\n const name = generateComponentId(rules);\n return new Keyframes(name, rules);\n}\n","// @flow\n/* eslint-disable no-underscore-dangle */\nimport React from 'react';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport throwStyledError from '../utils/error';\nimport getNonce from '../utils/nonce';\nimport StyleSheet from '../sheet';\nimport StyleSheetManager from './StyleSheetManager';\n\ndeclare var __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n isStreaming: boolean;\n\n instance: StyleSheet;\n\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n\n const nonce = getNonce();\n const attrs = [nonce && `nonce=\"${nonce}\"`, `${SC_ATTR}=\"true\"`, `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`];\n const htmlAttr = attrs.filter(Boolean).join(' ');\n\n return ``;\n };\n\n collectStyles(children: any) {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n return throwStyledError(2);\n }\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: this.instance.toString(),\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props: any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [