{"version":3,"sources":["webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/errors.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/browser.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/markup.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/transition.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/warnings.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/components.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/errorBoundaries.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/invariant.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/links.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/routeModules.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/AwaitValue.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/data.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@remix-run+react@1.18.1_react-dom@18.2.0_react@18.2.0/node_modules/@remix-run/react/dist/esm/routes.js","webpack://@lemon8/web-legal/../history.ts","webpack://@lemon8/web-legal/../utils.ts","webpack://@lemon8/web-legal/../router.ts","webpack://@lemon8/web-legal/./client/entry.client.tsx","webpack://@lemon8/web-legal/./shared/atoms/common/legal-page-level-traffic.ts","webpack://@lemon8/web-legal/./shared/atoms/email/email-data.ts","webpack://@lemon8/web-legal/./shared/atoms/common/legal-region.ts","webpack://@lemon8/web-legal/./shared/atoms/common/location.ts","webpack://@lemon8/web-legal/./shared/atoms/index.ts","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/ab-test.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/crawler.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/i18n-text.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/index.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/locale.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/render-config.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/root-traffic.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/user-agent.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/atom/web-user.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/i18n/europe.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/i18n/index.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/i18n/language.js","webpack://@lemon8/web-legal/../libs/lemon8-web-app-shared/dist/esm/i18n/region.js","webpack://@lemon8/web-legal/../dom.ts","webpack://@lemon8/web-legal/../index.tsx","webpack://@lemon8/web-legal/../lib/context.ts","webpack://@lemon8/web-legal/../lib/hooks.tsx","webpack://@lemon8/web-legal/../lib/components.tsx","webpack://@lemon8/web-legal/../index.ts","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/es/object/has-own.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/a-callable.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/a-constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/a-possible-prototype.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/add-to-unscopables.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/advance-string-index.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/an-instance.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/an-object.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-buffer-native.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-buffer-view-core.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-buffer.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-fill.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-from.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-includes.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-iteration-from-last.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-iteration.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-method-is-strict.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-reduce.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-slice-simple.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-slice.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-sort.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-species-constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-species-create.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-to-reversed.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/array-with.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/classof-raw.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/classof.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/clear-error-stack.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/copy-constructor-properties.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/correct-prototype-getter.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-iterator-constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-property-descriptor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/create-property.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-built-in-accessor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-built-in.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-built-ins.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-global-property.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-iterator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/define-well-known-symbol.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/delete-property-or-throw.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/descriptors.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/document-create-element.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/dom-exception-constants.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/dom-iterables.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/dom-token-list-prototype.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-ff-version.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-is-node.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-user-agent.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-v8-version.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/engine-webkit-version.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/enum-bug-keys.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/error-stack-installable.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/error-to-string.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/export.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/fails.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/flatten-into-array.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-apply.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-bind-context.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-bind-native.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-call.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-name.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/function-uncurry-this.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-built-in.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-iterator-method.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-iterator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-method.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/get-substitution.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/global.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/has-own-property.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/hidden-keys.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/html.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/ie8-dom-define.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/ieee754.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/indexed-object.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/inherit-if-required.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/inspect-source.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/install-error-cause.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/internal-state.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-array-iterator-method.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-array.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-big-int-array.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-callable.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-forced.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-integral-number.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-object.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-pure.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-regexp.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/is-symbol.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterate.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterator-close.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterators-core.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/iterators.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/length-of-array-like.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/make-built-in.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/math-trunc.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/native-symbol.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/native-url.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/native-weak-map.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/normalize-string-argument.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-assign.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-create.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-define-properties.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-define-property.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-own-property-names.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-get-prototype-of.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-is-prototype-of.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-keys-internal.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-keys.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/object-set-prototype-of.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/own-keys.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/path.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/proxy-accessor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-exec-abstract.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-exec.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-flags.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-get-flags.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/require-object-coercible.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/set-species.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/set-to-string-tag.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/shared-key.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/shared-store.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/shared.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/species-constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/string-multibyte.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-absolute-index.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-big-int.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-index.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-indexed-object.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-length.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-object.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-offset.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-positive-integer.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-primitive.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-property-key.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-string-tag-support.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/to-string.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/try-node-require.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/try-to-string.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/typed-array-constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/typed-array-from.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/uid.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/validate-arguments-length.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/well-known-symbol.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array-buffer.slice.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.flat.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.iterator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.push.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.reduce-right.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.reduce.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.reverse.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.sort.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.error.cause.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.json.stringify.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.object.from-entries.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.object.has-own.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.regexp.constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.regexp.dot-all.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.regexp.exec.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.string.iterator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.string.replace.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.symbol.description.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.at.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.fill.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.find-last.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.set.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.sort.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/esnext.typed-array.to-reversed.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/esnext.typed-array.to-sorted.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/esnext.typed-array.with.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-exception.stack.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url-search-params.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url.constructor.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/core-js@3.23.5/node_modules/core-js/modules/web.url.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/jotai@2.6.1_@types+react@18.2.58_react@18.2.0/node_modules/jotai/index.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/jotai@2.6.1_@types+react@18.2.58_react@18.2.0/node_modules/jotai/react.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/jotai@2.6.1_@types+react@18.2.58_react@18.2.0/node_modules/jotai/vanilla.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/scheduler@0.23.0/node_modules/scheduler/cjs/scheduler.production.min.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/scheduler@0.23.0/node_modules/scheduler/index.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@lemon8/web-legal/./node_modules/.pnpm/@babel+runtime@7.15.4/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","deserializeErrors","errors","entries","serialized","val","__type","ErrorResponse","status","statusText","data","internal","error","Error","message","stack","router","hmrAbortController","RemixBrowser","_props","routes","createClientRoutes","window","__remixManifest","__remixRouteModules","__remixContext","future","hydrationData","state","_objectSpread","createBrowserRouter","v7_normalizeFormMethod","v2_normalizeFormMethod","initialPathname","url","hydratedPathname","location","pathname","errorMsg","concat","console","reload","setLocation","React","subscribe","newState","RemixContext","value","manifest","routeModules","RemixErrorBoundary","component","RemixRootDefaultErrorBoundary","RouterProvider","fallbackElement","v7_startTransition","ESCAPE_LOOKUP","ESCAPE_REGEX","escapeHtml","html","replace","match","createHtml","__html","IDLE_TRANSITION","submission","undefined","type","IDLE_FETCHER","formMethod","formAction","formEncType","formData","json","text","alreadyWarned","logDeprecationOnce","useDataRouterContext","context","UNSAFE_DataRouterContext","invariant","useDataRouterStateContext","UNSAFE_DataRouterStateContext","displayName","useRemixContext","RemixRoute","_ref","id","default","Component","ErrorBoundary","CatchBoundary","v2_errorBoundary","Outlet","RemixRouteError","_ref2","useRouteError","V2_RemixRootDefaultErrorBoundary","RemixRootDefaultCatchBoundary","isRouteErrorResponse","tError","RemixCatchBoundary","catch","usePrefetchBehavior","prefetch","theirElementProps","maybePrefetch","setMaybePrefetch","shouldPrefetch","setShouldPrefetch","onFocus","onBlur","onMouseEnter","onMouseLeave","onTouchStart","ref","callback","forEach","entry","isIntersecting","observer","IntersectionObserver","threshold","current","observe","disconnect","setIntent","cancelIntent","setTimeout","clearTimeout","composeEventHandlers","ABSOLUTE_URL_REGEX","NavLink","_ref3","forwardedRef","to","props","_objectWithoutProperties","_excluded","isAbsolute","test","href","useHref","prefetchHandlers","NavLink$1","mergeRefs","PrefetchPageLinks","page","Link","_ref4","_excluded2","Link$1","theirHandler","ourHandler","event","defaultPrevented","linksWarning","useTransitionWarning","fetcherTypeWarning","fetcherSubmissionWarning","Links","matches","routerMatches","slice","findIndex","m","route","links","getLinksForMatches","some","link","map","isPageLinkDescriptor","imageSrcSet","imagesrcset","imagesizes","imageSizes","rel","_ref5","dataLinkProps","_excluded3","matchRoutes","PrefetchPageLinksImpl","warn","usePrefetchedStylesheets","styleLinks","setStyleLinks","interrupted","getStylesheetPrefetchLinks","then","_ref6","nextMatches","linkProps","_excluded4","useLocation","newMatchesForData","getNewMatchesForLinks","newMatchesForAssets","dataHrefs","getDataLinkHrefs","moduleHrefs","getModuleLinkHrefs","as","V1Meta","loaderData","meta","parentsData","routeId","params","routeModule","routeMeta","Array","isArray","path","_ref7","name","includes","charSet","String","isOpenGraphTag","flat","content","property","JSON","stringify","V2Meta","_matches","leafMeta","_match","handle","metaProps","tagName","isValidMetaTag","Comp","title","_metaProps$charSet","charset","err","dangerouslySetInnerHTML","Meta","v2_meta","Await","Await$1","isHydrated","Scripts","serverHandoffString","abortDelay","static","isStatic","staticContext","navigation","useNavigation","deferredScripts","initialScripts","_manifest$hmr","contextScript","activeDeferreds","join","_ref8","deferredData","pendingKeys","Set","promiseKeyValues","deferredKeys","has","push","DeferredHydrationScript","dataKey","scriptProps","trackedPromise","_error","toSerialize","_data","routeModulesScript","hmr","runtime","index","module","suppressHydrationWarning","async","a","routePreloads","imports","preloads","crossOrigin","dedupe","_ref9","document","fallback","resolve","errorElement","ErrorDeferredHydrationScript","children","_ref10","useAsyncError","array","useMatches","useMatches$1","useLoaderData","useLoaderData$1","useActionData","useActionData$1","useTransition","convertNavigationToTransition","isActionSubmission","toUpperCase","method","action","encType","_isRedirect","_isFetchActionRedirect","URL","origin","search","URLSearchParams","toString","useFetchers","useFetchers$1","f","fetcher","convertRouterFetcherToRemixFetcher","addFetcherDeprecationWarnings","useFetcher","fetcherRR","useFetcher$1","remixFetcher","fetcherWithComponents","load","submit","Form","defineProperty","get","set","configurable","enumerable","LiveReload","_len","refs","_key","React__default","constructor","getDerivedStateFromError","getDerivedStateFromProps","render","lang","style","fontFamily","padding","fontSize","background","color","overflow","RemixRootDefaultCatchBoundaryImpl","caught","errorString","RemixCatchContext","useCatch","useContext","catchVal","Provider","descriptors","_module$links","getCurrentPageModulePreloadHrefs","prefetchStyleLinks","descriptor","matchingLinks","filter","media","matchMedia","Promise","all","prefetchStyleLink","createElement","removeLink","head","contains","removeChild","onload","onerror","appendChild","object","isHtmlLinkDescriptor","mod","loadRouteModule","currentMatches","mode","parsePathPatch","isNew","matchPathChanged","_currentMatches$index","endsWith","hasLoader","shouldRevalidate","_currentMatches$","routeChoice","currentUrl","hash","currentParams","nextUrl","nextParams","defaultShouldRevalidate","manifestRoute","dedupeHrefs","searchParams","manifestPatch","hrefs","preloadsSet","reduce","deduped","str","add","parsePath","routeModulesCache","_AwaitValue","_awaitAsyncGenerator","AsyncGenerator","gen","front","back","send","arg","reject","request","resume","result","wrappedAwait","settle","_wrapAsyncGenerator","fn","isCatchResponse","response","headers","isErrorResponse","isRedirectResponse","isDeferredResponse","_response$headers$get","fetchData","retry","init","signal","contentType","body","revalidation","__remixRevalidation","fetch","DEFERRED_VALUE_PLACEHOLDER_PREFIX","parseDeferredReadableStream","stream","deferredResolvers","sectionReader","readStreamSections","initialSection","next","criticalData","parse","eventKey","startsWith","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","_step","done","section","sectionDataStrings","split","sectionDataString","return","resolver","AbortedDeferredError","values","UNSAFE_DeferredData","_x","_readStreamSections","reader","getReader","buffer","sections","closed","encoder","TextEncoder","decoder","TextDecoder","readStreamSection","shift","chunk","read","splitSections","decode","mergeArrays","encode","_unused","s","arrays","out","Uint8Array","total","arr","offset","groupRoutesByParentId","parentId","createServerRoutes","routesByParentId","hasErrorBoundary","hasCatchBoundary","dataRoute","caseSensitive","element","createClientRoutesWithHMRRevalidationOptOut","needsRevalidation","loader","createDataFunction","createShouldRevalidate","handledRevalidation","loadRouteModuleWithBlockingLinks","isAction","routeModulePromise","hasAction","msg","getRedirect","parseInt","revalidate","redirect","Action","PopStateEventType","createMemoryHistory","options","initialEntries","initialIndex","v5Compat","createMemoryLocation","clampIndex","Pop","listener","n","Math","min","max","getCurrentLocation","createLocation","warning","charAt","createHref","createPath","createURL","encodeLocation","Push","nextLocation","splice","delta","Replace","go","nextIndex","listen","createBrowserHistory","createBrowserLocation","globalHistory","usr","createBrowserHref","getUrlBasedHistory","createHashHistory","createHashLocation","substr","createHashHref","base","querySelector","getAttribute","hashIndex","indexOf","validateHashLocation","cond","e","createKey","random","getHistoryState","idx","parsedPath","searchIndex","getLocation","validateLocation","defaultView","history","getIndex","replaceState","handlePop","historyState","pushState","DOMException","addEventListener","removeEventListener","ResultType","immutableRouteKeys","isIndexRoute","convertRoutesToDataRoutes","mapRouteProperties","parentPath","treePath","indexRoute","pathOrLayoutRoute","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matchRouteBranch","safelyDecodeURI","parentsMeta","flattenRoute","relativePath","childrenIndex","joinPaths","routesMeta","score","computeScore","_route$path","exploded","explodeOptionalSegments","segments","first","rest","isOptional","required","restExploded","subpath","sort","b","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","every","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","pathnameBase","normalizePathname","generatePath","originalPath","prefix","p","keyMatch","optional","param","pattern","matcher","paramNames","compilePath","captureGroups","memo","paramName","splatValue","safelyDecodeURIComponent","regexpSource","_","RegExp","decodeURI","decodeURIComponent","toLowerCase","startIndex","nextChar","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","relativeSegments","pop","getInvalidPathError","char","field","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","getToPathname","paths","responseInit","Headers","Response","DeferredData","pendingKeysSet","subscribers","abortPromise","r","controller","AbortController","onAbort","unlistenAbortSignal","acc","trackPromise","promise","race","onSettle","aborted","delete","emit","settledKey","subscriber","cancel","abort","v","k","resolveData","size","unwrappedData","unwrapTrackedPromise","isTrackedPromise","_tracked","defer","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","IDLE_BLOCKER","proceed","reset","defaultMapRouteProperties","Boolean","createRouter","routerWindow","isBrowser","isServer","detectErrorBoundary","dataRoutes","inFlightDataRoutes","v7_prependBasename","unlistenHistory","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","initialized","lazy","historyAction","restoreScrollPosition","preventScrollReset","actionData","fetchers","Map","blockers","pendingAction","HistoryAction","pendingPreventScrollReset","pendingNavigationController","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","blockerFunctions","ignoreNextHistoryUpdate","initialize","blockerKey","shouldBlockNavigation","currentLocation","updateBlocker","updateState","startNavigation","dispose","clear","deleteFetcher","deleteBlocker","completeNavigation","_location$state","_location$state2","isActionReload","isMutationMethod","keys","mergeLoaderData","getSavedScrollPosition","navigate","opts","normalizedPath","normalizeTo","fromRouteId","relative","normalizeNavigateOptions","userReplace","pendingError","interruptActiveLoads","startUninterruptedRevalidation","overrideNavigation","saveScrollPosition","routesToUse","loadingNavigation","notFoundMatches","cancelActiveDeferreds","isHashChangeOnly","createClientSideRequest","pendingActionData","findNearestBoundary","actionOutput","handleAction","shortCircuited","pendingActionError","getLoadingNavigation","Request","handleLoaders","fetcherSubmission","getSubmittingNavigation","actionMatch","getTargetMatch","callLoaderOrAction","isRedirectResult","startRedirectNavigation","isErrorResult","boundaryMatch","isDeferredResult","activeSubmission","getSubmissionFromNavigation","matchesToLoad","revalidatingFetchers","getMatchesToLoad","updatedFetchers","markFetchRedirectsDone","rf","revalidatingFetcher","getLoadingFetcher","abortFetcher","abortPendingFetchRevalidations","results","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","findRedirect","processLoaderData","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","getFetcher","setFetcherError","handleFetcherAction","handleFetcherLoader","requestMatches","existingFetcher","getSubmittingFetcher","abortController","fetchRequest","actionResult","loadingFetcher","isFetchActionRedirect","revalidationRequest","loadId","loadFetcher","staleKey","doneFetcher","getDoneFetcher","resolveDeferredData","_temp","redirectLocation","isDifferentBasename","redirectHistoryAction","fetchersToLoad","resolveDeferredResults","markFetchersDone","doneKeys","landedId","yeetedKeys","getBlocker","blocker","newBlocker","blockerFunction","predicate","cancelledRouteIds","dfd","enableScrollRestoration","positions","getPosition","getKey","y","getScrollKey","createUseMatchesMatch","_internalSetRoutes","newRoutes","_internalFetchControllers","_internalActiveDeferreds","UNSAFE_DEFERRED_SYMBOL","Symbol","createStaticHandler","query","_temp2","requestContext","isValidMethod","methodNotAllowedMatches","statusCode","loaderHeaders","actionHeaders","queryImpl","isResponse","queryRoute","_temp3","find","_result$activeDeferre","routeMatch","loadRouteData","isQueryRouteResponse","isRouteRequest","isStaticRequest","Location","loaderRequest","getLoaderMatchesUntilBoundary","processRouteLoaderData","executedLoaders","fromEntries","getStaticContextFromError","_deepestRenderedBoundaryId","isSubmissionNavigation","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","getInvalidBodyError","rawFormMethod","stripHashFromPath","FormData","convertFormDataToSearchParams","convertSearchParamsToFormData","append","boundaryId","boundaryMatches","navigationMatches","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","isNewRouteInstance","fetcherMatches","isPerformingInitialLoad","fetcherMatch","currentLoaderData","currentMatch","isMissingData","currentPath","loaderMatch","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","resultType","onReject","runHandler","handler","protocol","isSameBasename","isDeferredData","_result$init","_result$init2","deferred","foundError","newLoaderData","mergedLoaderData","reverse","_temp4","errorMessage","obj","signals","isRevalidatingLoader","unwrap","getAll","pathMatches","store","createStore","atoms","Atoms","atomFamilies","AtomFamilies","startTransition","hydrateRoot","jsx","StrictMode","$LegalPageLevelTraffic","atom","debugLabel","EmailRequiredArr","$EmailData","ticket","msgId","timestamp","sceneId","tid","region","uid","canRequest","aid","$LegalRegion","Region","$Location","hasNav","$SharedAtom","$Locale","$ABTest","$RenderConfig","$WebUser","$UserAgent","$I18nText","$RootTraffic","exports","jotai_1","require","versions","parameters","__createBinding","create","o","k2","desc","getOwnPropertyDescriptor","__esModule","writable","__exportStar","isSteamingSSR","isMobile","isBot","isiOS","isSafari","isInApp","isMacOS","webId","EURO_COUNTRY_LIST","isEuropeRegion","EURO_COUNTRY_SET","region_1","Language","en","ja","ms","th","vi","fil","SupportedLanguages","language","LanguageDisplayNameMap","l","jp","my","vn","us","gb","sg","ph","IDCRegion","getRegionIDC","VA","SG","defaultMethod","defaultEncType","isHtmlElement","isButtonElement","isFormElement","isInputElement","isModifiedEvent","metaKey","altKey","ctrlKey","shiftKey","shouldProcessLinkClick","button","createSearchParams","getSearchParamsForLocation","locationSearch","defaultSearchParams","_formDataSupportsSubmitter","isFormDataSubmitterSupported","supportedFormEncTypes","getFormEncType","getFormSubmissionInfo","attr","form","parseHydrationData","createHashRouter","_window","__staticRouterHydrationData","START_TRANSITION","startTransitionImpl","BrowserRouter","historyRef","setStateImpl","setState","Router","navigationType","navigator","HashRouter","HistoryRouter","onClick","reloadDocument","_objectWithoutPropertiesLoose","NavigationContext","absoluteHref","isExternal","targetUrl","internalOnClick","useLinkClickHandler","handleClick","ariaCurrentProp","className","classNameProp","styleProp","useResolvedPath","routerState","DataRouterStateContext","nextLocationPathname","isActive","isPending","ariaCurrent","useSubmit","FormImpl","onSubmit","useFormAction","submitHandler","preventDefault","submitter","nativeEvent","submitMethod","currentTarget","ScrollRestoration","storageKey","useScrollRestoration","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","ctx","DataRouterContext","useDataRouterState","replaceProp","useNavigate","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","setSearchParams","nextInit","navigateOptions","newSearchParams","validateClientSideSubmission","UseSubmit","currentRouteId","useRouteId","useSubmitFetcher","fetcherKey","fetcherRouteId","UseSubmitFetcher","routeContext","RouteContext","createFetcherForm","fetcherId","_route$matches","UseFetcher","UseFetchers","SCROLL_RESTORATION_STORAGE_KEY","UseScrollRestoration","scrollRestoration","usePageHide","scrollY","sessionStorage","setItem","sessionPositions","getItem","getKeyWithoutBasename","disableScrollRestoration","scrollTo","el","getElementById","scrollIntoView","useBeforeUnload","capture","usePrompt","when","useBlocker","confirm","AwaitContext","LocationContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","joinedPathname","useNavigationType","useMatch","navigateEffectWarning","useIsomorphicLayoutEffect","cb","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","activeRef","OutletContext","useOutletContext","useOutlet","useParams","useRoutes","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","_renderMatches","NavigationType","DefaultErrorComponent","lightgrey","preStyles","backgroundColor","codeStyles","devInfo","fontStyle","defaultErrorElement","RenderErrorBoundary","componentDidCatch","errorInfo","RenderedRoute","_dataRouterState2","_dataRouterState","errorIndex","reduceRight","getChildren","useRouteContext","useCurrentRouteId","thisRoute","UseRouteId","UseNavigation","useRevalidator","UseRevalidator","UseMatches","UseLoaderData","useRouteLoaderData","UseRouteLoaderData","UseActionData","_state$errors","UseRouteError","useAsyncValue","blockerId","shouldBlock","UseBlocker","setBlockerKey","UseNavigateStable","warningOnce","DataRoutes","MemoryRouter","Navigate","jsonPath","Route","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","AwaitErrorBoundary","ResolveAwait","AwaitRenderStatus","neverSettledPromise","pending","success","renderError","toRender","renderMatches","updates","createMemoryRouter","isCallable","tryToString","$TypeError","argument","isConstructor","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","S","unicode","isPrototypeOf","it","Prototype","isObject","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","hasOwn","classof","createNonEnumerableProperty","defineBuiltIn","getPrototypeOf","setPrototypeOf","InternalStateModule","enforceInternalState","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TypeError","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","TypedArrayConstructorsList","BigIntArrayConstructorsList","isView","klass","getTypedArrayConstructor","proto","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","uncurryThis","FunctionName","defineBuiltIns","fails","anInstance","toIntegerOrInfinity","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","arraySlice","setToStringTag","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","setInternalState","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","RangeError","fill","packIEEE754","unpackIEEE754","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","bytes","start","pack","conversion","byteLength","byteOffset","bufferLength","INCORRECT_ARRAY_BUFFER_NAME","j","testView","$setInt8","toObject","toAbsoluteIndex","lengthOfArrayLike","O","argumentsLength","endPos","list","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","iteratorMethod","step","iterator","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","IndexedObject","TYPE","IS_FIND_LAST_INDEX","callbackfn","that","self","boundFunction","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","METHOD_NAME","aCallable","IS_RIGHT","fin","floor","mergeSort","comparefn","middle","insertionSort","merge","left","right","llength","rlength","lindex","rindex","SPECIES","originalArray","arraySpeciesConstructor","len","A","$RangeError","relativeIndex","actualIndex","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","tag","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","F","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","ENUMERABLE_NEXT","bitmap","toPropertyKey","propertyKey","makeBuiltIn","defineGlobalProperty","simple","src","$","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","wrappedWellKnownSymbolModule","P","EXISTS","MAX_SAFE_INTEGER","documentCreateElement","classList","DOMTokenListPrototype","userAgent","firefox","UA","getBuiltIn","process","Deno","v8","version","webkit","normalizeStringArgument","nativeErrorToString","INCORRECT_TO_STRING","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","targetProperty","sourceProperty","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","uncurriedNativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","uncurriedNativeMethod","$exec","doesNotExceedSafeInteger","flattenIntoArray","original","sourceLen","depth","mapper","thisArg","targetIndex","sourceIndex","mapFn","elementLen","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","aFunction","namespace","getMethod","usingIterator","V","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","symbols","ch","check","abs","pow","log","LN2","mantissaLength","exponentLength","eMax","eBias","rt","sign","exponent","mantissa","c","unpack","nBits","dummy","Wrapper","NewTarget","NewTargetPrototype","functionToString","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","wmget","wmhas","wmset","metadata","STATE","inspectSource","noop","empty","construct","constructorRegExp","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","string","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","kind","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","CONFIGURABLE_LENGTH","TEMPLATE","ceil","x","V8_VERSION","symbol","$default","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","B","alphabet","chr","T","getOwnPropertySymbols","propertyIsEnumerable","definePropertiesModule","enumBugKeys","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","setter","input","pref","getOwnPropertyNamesModule","Target","Source","R","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","NPCG_INCLUDED","PATCH","raw","reCopy","lastIndex","group","groups","sticky","flags","charsAdded","strCopy","regExpFlags","$RegExp","MISSED_STICKY","BROKEN_CARET","CONSTRUCTOR_NAME","TAG","SHARED","aConstructor","defaultConstructor","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","second","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","fromCharCode","ucs2decode","output","counter","extra","digitToBasic","digit","adapt","numPoints","firstTime","inputLength","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","encoded","labels","label","integer","toPrimitive","prim","trunc","toPositiveInteger","BYTES","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","IS_NODE","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","setSpecies","inheritIfRequired","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","ArrayBuffer","DataView","BYTES_PER_ELEMENT","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","getter","addElement","typedArrayOffset","$length","$len","checkCorrectnessOfIteration","postfix","NATIVE_SYMBOL","passed","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","description","proxyAccessor","installErrorCause","clearErrorStack","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","speciesConstructor","un$ArrayBufferSlice","getUint8","setUint8","INCORRECT_SLICE","viewSource","viewTarget","depthArg","addToUnscopables","defineIterator","ARRAY_ITERATOR","iterated","INCORRECT_TO_LENGTH","SILENT_ON_NON_WRITABLE_LENGTH","item","argCount","$reduceRight","arrayMethodIsStrict","CHROME_VERSION","STRICT_METHOD","CHROME_BUG","$reduce","un$Reverse","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","getSortCompare","items","arrayLength","itemsLength","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","args","$replacer","fixIllFormed","prev","space","iterate","getRegExpFlags","NativeRegExp","SyntaxError","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","handleDotAll","brackets","handleNCG","named","ncg","groupid","groupname","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","rawFlags","dotAll","handled","defineBuiltInAccessor","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","res","functionalReplace","fullUnicode","matchStr","accumulatedResult","nextSourcePosition","replacerArgs","defineWellKnownSymbol","NativeSymbol","SymbolPrototype","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","$fill","toBigInt","CONVERSION_BUG","actualValue","$findLastIndex","$findLast","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","Uint16Array","ACCEPT_INCORRECT_ARGUMENTS","expected","createTypedArrayConstructor","arrayToReversed","arrayFromConstructorAndList","compareFn","arrayWith","isBigIntArray","PROPER_ORDER","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","tryNodeRequire","errorToString","DOMExceptionConstants","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","MessageChannel","NativeDOMExceptionPrototype","ErrorPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","USE_NATIVE_URL","$toString","validateArgumentsLength","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","safeGetBuiltIn","nativeFetch","NativeRequest","RequestPrototype","HeadersPrototype","encodeURIComponent","plus","sequences","percentSequence","percentDecode","sequence","deserialize","replacements","serialize","URLSearchParamsIterator","URLSearchParamsState","entryIterator","entryNext","attributes","attribute","URLSearchParamsConstructor","URLSearchParamsPrototype","found","headersHas","headersSet","wrapRequestOptions","RequestConstructor","arrayFrom","codeAt","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseIPv4","parts","partsLength","numbers","part","radix","ipv4","parseIPv6","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","host","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","urlString","baseState","failure","stateOverride","seenAt","seenBracket","seenPasswordToken","codePoints","bufferCodePoints","codePoint","encodedCodePoints","port","pathSize","scheme","username","password","fragment","URLConstructor","hostname","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","vanilla","react","ReactExports","StoreContext","useStore","storeRef","isPromiseLike","use","useAtomValue","_useReducer","nextValue","_useReducer$","valueFromReducer","storeFromReducer","atomFromReducer","rerender","delay","unsub","useSetAtom","setAtom","useAtom","keyCount","write","config","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr2","_createForOfIteratorHelperLoose","allowArrayLike","hasInitialValue","isActuallyWritableAtom","cancelPromiseMap","registerCancelPromise","cancelPromise","resolvePromise","rejectPromise","isEqualAtomValue","isEqualAtomError","hasPromiseAtomValue","isEqualPromiseAtomValue","returnAtomValue","atomState","atomStateMap","mountedMap","pendingMap","storeListenersRev2","mountedAtoms","getAtomState","setAtomState","prevAtomState","_next","updateDependencies","nextAtomState","nextDependencies","dependencies","changed","aState","setAtomValue","setAtomValueOrPromise","valueOrPromise","continuePromise","updatePromiseDependencies","mountDependencies","settled","setAtomError","readAtomState","force","isSync","_aState","setSelf","writeAtom","_controller","readAtom","addAtom","mounted","mountAtom","canUnmountAtom","delAtom","unmountAtom","recomputeDependents","dependencyMap","dirtyMap","getDependents","_mountedMap$get","dependents","pendingAtom","_getAtomState","loop1","dependent","loop2","dirtyCount","_dependencyMap$get","isChanged","writeAtomState","_len3","_key3","flushed","flushPending","_len2","_key2","_len4","_key4","initialDependent","onMountQueue","_getAtomState2","queue","aMounted","onMount","onUnmount","_len5","_key5","_mountedMap$get2","prevDependencies","depSet","subscribeAtom","listeners","defaultStore","getDefaultStore","d","g","h","w","u","z","D","E","G","H","I","J","K","L","M","N","Q","U","_defineProperty","enumerableOnly","sym","_objectSpread2","excluded","sourceKeys","sourceSymbolKeys"],"mappings":"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","file":"entry.client-91c956eb5fd4fef02cfb.js","sourcesContent":["/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nexport { _extends as extends };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { ErrorResponse } from '@remix-run/router';\n\n/**\n * @deprecated in favor of the `ErrorResponse` class in React Router. Please\n * enable the `future.v2_errorBoundary` flag to ease your migration to Remix v2.\n */\n\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in remix-server-runtime/errors.ts :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n let error = new Error(val.message);\n error.stack = val.stack;\n serialized[key] = error;\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\nexport { deserializeErrors };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createBrowserRouter, RouterProvider } from 'react-router-dom';\nimport { RemixContext } from './components.js';\nimport { RemixErrorBoundary, RemixRootDefaultErrorBoundary } from './errorBoundaries.js';\nimport { deserializeErrors } from './errors.js';\nimport { createClientRoutesWithHMRRevalidationOptOut, createClientRoutes } from './routes.js';\n\n/* eslint-disable prefer-let/prefer-let */\n\n/* eslint-enable prefer-let/prefer-let */\n\nlet router;\nlet hmrAbortController;\nif (import.meta && import.meta.hot) {\n import.meta.hot.accept(\"remix:manifest\", async ({\n assetsManifest,\n needsRevalidation\n }) => {\n let routeIds = [...new Set(router.state.matches.map(m => m.route.id).concat(Object.keys(window.__remixRouteModules)))];\n if (hmrAbortController) {\n hmrAbortController.abort();\n }\n hmrAbortController = new AbortController();\n let signal = hmrAbortController.signal;\n\n // Load new route modules that we've seen.\n let newRouteModules = Object.assign({}, window.__remixRouteModules, Object.fromEntries((await Promise.all(routeIds.map(async id => {\n var _assetsManifest$hmr, _window$__remixRouteM, _window$__remixRouteM2, _window$__remixRouteM3;\n if (!assetsManifest.routes[id]) {\n return null;\n }\n let imported = await import(assetsManifest.routes[id].module + `?t=${(_assetsManifest$hmr = assetsManifest.hmr) === null || _assetsManifest$hmr === void 0 ? void 0 : _assetsManifest$hmr.timestamp}`);\n return [id, {\n ...imported,\n // react-refresh takes care of updating these in-place,\n // if we don't preserve existing values we'll loose state.\n default: imported.default ? ((_window$__remixRouteM = window.__remixRouteModules[id]) === null || _window$__remixRouteM === void 0 ? void 0 : _window$__remixRouteM.default) ?? imported.default : imported.default,\n CatchBoundary: imported.CatchBoundary ? ((_window$__remixRouteM2 = window.__remixRouteModules[id]) === null || _window$__remixRouteM2 === void 0 ? void 0 : _window$__remixRouteM2.CatchBoundary) ?? imported.CatchBoundary : imported.CatchBoundary,\n ErrorBoundary: imported.ErrorBoundary ? ((_window$__remixRouteM3 = window.__remixRouteModules[id]) === null || _window$__remixRouteM3 === void 0 ? void 0 : _window$__remixRouteM3.ErrorBoundary) ?? imported.ErrorBoundary : imported.ErrorBoundary\n }];\n }))).filter(Boolean)));\n Object.assign(window.__remixRouteModules, newRouteModules);\n // Create new routes\n let routes = createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, assetsManifest.routes, window.__remixRouteModules, window.__remixContext.future);\n\n // This is temporary API and will be more granular before release\n router._internalSetRoutes(routes);\n\n // Wait for router to be idle before updating the manifest and route modules\n // and triggering a react-refresh\n let unsub = router.subscribe(state => {\n if (state.revalidation === \"idle\") {\n unsub();\n // Abort if a new update comes in while we're waiting for the\n // router to be idle.\n if (signal.aborted) return;\n // Ensure RouterProvider setState has flushed before re-rendering\n setTimeout(() => {\n Object.assign(window.__remixManifest, assetsManifest);\n window.$RefreshRuntime$.performReactRefresh();\n }, 1);\n }\n });\n window.__remixRevalidation = (window.__remixRevalidation || 0) + 1;\n router.revalidate();\n });\n}\n\n/**\n * The entry point for a Remix app when it is rendered in the browser (in\n * `app/entry.client.js`). This component is used by React to hydrate the HTML\n * that was received from the server.\n */\nfunction RemixBrowser(_props) {\n if (!router) {\n let routes = createClientRoutes(window.__remixManifest.routes, window.__remixRouteModules, window.__remixContext.future);\n let hydrationData = window.__remixContext.state;\n if (hydrationData && hydrationData.errors) {\n hydrationData = {\n ...hydrationData,\n errors: deserializeErrors(hydrationData.errors)\n };\n }\n router = createBrowserRouter(routes, {\n hydrationData,\n future: {\n // Pass through the Remix future flag to avoid a v1 breaking change in\n // useNavigation() - users can control the casing via the flag in v1.\n // useFetcher still always uppercases in the back-compat layer in v1.\n // In v2 we can just always pass true here and remove the back-compat\n // layer\n v7_normalizeFormMethod: window.__remixContext.future.v2_normalizeFormMethod\n }\n });\n\n // Hard reload if the path we tried to load is not the current path.\n // This is usually the result of 2 rapid back/forward clicks from an\n // external site into a Remix app, where we initially start the load for\n // one URL and while the JS chunks are loading a second forward click moves\n // us to a new URL. Avoid comparing search params because of CDNs which\n // can be configured to ignore certain params and only pathname is relevant\n // towards determining the route matches.\n let initialPathname = window.__remixContext.url;\n let hydratedPathname = window.location.pathname;\n if (initialPathname !== hydratedPathname) {\n let errorMsg = `Initial URL (${initialPathname}) does not match URL at time of hydration ` + `(${hydratedPathname}), reloading page...`;\n console.error(errorMsg);\n window.location.reload();\n }\n }\n let [location, setLocation] = React.useState(router.state.location);\n React.useLayoutEffect(() => {\n return router.subscribe(newState => {\n if (newState.location !== location) {\n setLocation(newState.location);\n }\n });\n }, [location]);\n\n // We need to include a wrapper RemixErrorBoundary here in case the root error\n // boundary also throws and we need to bubble up outside of the router entirely.\n // Then we need a stateful location here so the user can back-button navigate\n // out of there\n return /*#__PURE__*/React.createElement(RemixContext.Provider, {\n value: {\n manifest: window.__remixManifest,\n routeModules: window.__remixRouteModules,\n future: window.__remixContext.future\n }\n }, /*#__PURE__*/React.createElement(RemixErrorBoundary, {\n location: location,\n component: RemixRootDefaultErrorBoundary\n }, /*#__PURE__*/React.createElement(RouterProvider, {\n router: router,\n fallbackElement: null,\n future: {\n v7_startTransition: true\n }\n })));\n}\n\nexport { RemixBrowser };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// This escapeHtml utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n\n// We've chosen to inline the utility here to reduce the number of npm dependencies we have,\n// slightly decrease the code size compared the original package and make it esm compatible.\n\nconst ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\nfunction createHtml(html) {\n return {\n __html: html\n };\n}\n\nexport { createHtml, escapeHtml };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// Thanks https://github.com/sindresorhus/type-fest!\n\n// Fetchers need a separate set of types to reflect the json/text submission\n// support in react-router. We do not carry that into useTransition since\n// it's deprecated\n// TODO: keep data around on resubmission?\nconst IDLE_TRANSITION = {\n state: \"idle\",\n submission: undefined,\n location: undefined,\n type: \"idle\"\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n type: \"init\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n submission: undefined\n};\n\nexport { IDLE_FETCHER, IDLE_TRANSITION };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nconst alreadyWarned = {};\nfunction logDeprecationOnce(message, key = message) {\n if (process.env.NODE_ENV !== \"production\" && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n console.warn(message);\n }\n}\n\nexport { logDeprecationOnce };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useHref, NavLink as NavLink$1, Link as Link$1, matchRoutes, useLocation, Await as Await$1, useNavigation, useAsyncError, useMatches as useMatches$1, useLoaderData as useLoaderData$1, useActionData as useActionData$1, useFetchers as useFetchers$1, useFetcher as useFetcher$1, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Outlet, useRouteError, isRouteErrorResponse } from 'react-router-dom';\nimport { RemixRootDefaultErrorBoundary, RemixCatchBoundary, V2_RemixRootDefaultErrorBoundary, RemixRootDefaultCatchBoundary } from './errorBoundaries.js';\nimport invariant from './invariant.js';\nimport { getLinksForMatches, isPageLinkDescriptor, getNewMatchesForLinks, getDataLinkHrefs, getModuleLinkHrefs, getStylesheetPrefetchLinks } from './links.js';\nimport { escapeHtml, createHtml } from './markup.js';\nimport { IDLE_TRANSITION, IDLE_FETCHER } from './transition.js';\nimport { logDeprecationOnce } from './warnings.js';\n\nfunction useDataRouterContext() {\n let context = React.useContext(UNSAFE_DataRouterContext);\n invariant(context, \"You must render this element inside a element\");\n return context;\n}\nfunction useDataRouterStateContext() {\n let context = React.useContext(UNSAFE_DataRouterStateContext);\n invariant(context, \"You must render this element inside a element\");\n return context;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RemixContext\n\nconst RemixContext = /*#__PURE__*/React.createContext(undefined);\nRemixContext.displayName = \"Remix\";\nfunction useRemixContext() {\n let context = React.useContext(RemixContext);\n invariant(context, \"You must render this element inside a element\");\n return context;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RemixRoute\n\nfunction RemixRoute({\n id\n}) {\n let {\n routeModules,\n future\n } = useRemixContext();\n invariant(routeModules, \"Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules.\\n\" + \"Check this link for more details:\\nhttps://remix.run/pages/gotchas#server-code-in-client-bundles\");\n let {\n default: Component,\n ErrorBoundary,\n CatchBoundary\n } = routeModules[id];\n\n // Default Component to Outlet if we expose boundary UI components\n if (!Component && (ErrorBoundary || !future.v2_errorBoundary && CatchBoundary)) {\n Component = Outlet;\n }\n invariant(Component, `Route \"${id}\" has no component! Please go add a \\`default\\` export in the route module file.\\n` + \"If you were trying to navigate or submit to a resource route, use `` instead of `` or `
`.\");\n return /*#__PURE__*/React.createElement(Component, null);\n}\nfunction RemixRouteError({\n id\n}) {\n let {\n future,\n routeModules\n } = useRemixContext();\n\n // This checks prevent cryptic error messages such as: 'Cannot read properties of undefined (reading 'root')'\n invariant(routeModules, \"Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules.\\n\" + \"Check this link for more details:\\nhttps://remix.run/pages/gotchas#server-code-in-client-bundles\");\n let error = useRouteError();\n let {\n CatchBoundary,\n ErrorBoundary\n } = routeModules[id];\n if (future.v2_errorBoundary) {\n // Provide defaults for the root route if they are not present\n if (id === \"root\") {\n ErrorBoundary || (ErrorBoundary = V2_RemixRootDefaultErrorBoundary);\n }\n if (ErrorBoundary) {\n // TODO: Unsure if we can satisfy the typings here\n // @ts-expect-error\n return /*#__PURE__*/React.createElement(ErrorBoundary, null);\n }\n throw error;\n }\n\n // Provide defaults for the root route if they are not present\n if (id === \"root\") {\n CatchBoundary || (CatchBoundary = RemixRootDefaultCatchBoundary);\n ErrorBoundary || (ErrorBoundary = RemixRootDefaultErrorBoundary);\n }\n if (isRouteErrorResponse(error)) {\n let tError = error;\n if (!!(tError !== null && tError !== void 0 && tError.error) && tError.status !== 404 && ErrorBoundary) {\n // Internal framework-thrown ErrorResponses\n return /*#__PURE__*/React.createElement(ErrorBoundary, {\n error: tError.error\n });\n }\n if (CatchBoundary) {\n // User-thrown ErrorResponses\n return /*#__PURE__*/React.createElement(RemixCatchBoundary, {\n catch: error,\n component: CatchBoundary\n });\n }\n }\n if (error instanceof Error && ErrorBoundary) {\n // User- or framework-thrown Errors\n return /*#__PURE__*/React.createElement(ErrorBoundary, {\n error: error\n });\n }\n throw error;\n}\n////////////////////////////////////////////////////////////////////////////////\n// Public API\n\n/**\n * Defines the prefetching behavior of the link:\n *\n * - \"intent\": Fetched when the user focuses or hovers the link\n * - \"render\": Fetched when the link is rendered\n * - \"none\": Never fetched\n */\nfunction usePrefetchBehavior(prefetch, theirElementProps) {\n let [maybePrefetch, setMaybePrefetch] = React.useState(false);\n let [shouldPrefetch, setShouldPrefetch] = React.useState(false);\n let {\n onFocus,\n onBlur,\n onMouseEnter,\n onMouseLeave,\n onTouchStart\n } = theirElementProps;\n let ref = React.useRef(null);\n React.useEffect(() => {\n if (prefetch === \"render\") {\n setShouldPrefetch(true);\n }\n if (prefetch === \"viewport\") {\n let callback = entries => {\n entries.forEach(entry => {\n setShouldPrefetch(entry.isIntersecting);\n });\n };\n let observer = new IntersectionObserver(callback, {\n threshold: 0.5\n });\n if (ref.current) observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }\n }, [prefetch]);\n let setIntent = () => {\n if (prefetch === \"intent\") {\n setMaybePrefetch(true);\n }\n };\n let cancelIntent = () => {\n if (prefetch === \"intent\") {\n setMaybePrefetch(false);\n setShouldPrefetch(false);\n }\n };\n React.useEffect(() => {\n if (maybePrefetch) {\n let id = setTimeout(() => {\n setShouldPrefetch(true);\n }, 100);\n return () => {\n clearTimeout(id);\n };\n }\n }, [maybePrefetch]);\n return [shouldPrefetch, ref, {\n onFocus: composeEventHandlers(onFocus, setIntent),\n onBlur: composeEventHandlers(onBlur, cancelIntent),\n onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),\n onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),\n onTouchStart: composeEventHandlers(onTouchStart, setIntent)\n }];\n}\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * A special kind of `` that knows whether or not it is \"active\".\n *\n * @see https://remix.run/components/nav-link\n */\nlet NavLink = /*#__PURE__*/React.forwardRef(({\n to,\n prefetch = \"none\",\n ...props\n}, forwardedRef) => {\n let isAbsolute = typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to);\n let href = useHref(to);\n let [shouldPrefetch, ref, prefetchHandlers] = usePrefetchBehavior(prefetch, props);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NavLink$1, _extends({}, props, prefetchHandlers, {\n ref: mergeRefs(forwardedRef, ref),\n to: to\n })), shouldPrefetch && !isAbsolute ? /*#__PURE__*/React.createElement(PrefetchPageLinks, {\n page: href\n }) : null);\n});\nNavLink.displayName = \"NavLink\";\n\n/**\n * This component renders an anchor tag and is the primary way the user will\n * navigate around your website.\n *\n * @see https://remix.run/components/link\n */\nlet Link = /*#__PURE__*/React.forwardRef(({\n to,\n prefetch = \"none\",\n ...props\n}, forwardedRef) => {\n let isAbsolute = typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to);\n let href = useHref(to);\n let [shouldPrefetch, ref, prefetchHandlers] = usePrefetchBehavior(prefetch, props);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Link$1, _extends({}, props, prefetchHandlers, {\n ref: mergeRefs(forwardedRef, ref),\n to: to\n })), shouldPrefetch && !isAbsolute ? /*#__PURE__*/React.createElement(PrefetchPageLinks, {\n page: href\n }) : null);\n});\nLink.displayName = \"Link\";\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return event => {\n theirHandler && theirHandler(event);\n if (!event.defaultPrevented) {\n ourHandler(event);\n }\n };\n}\nlet linksWarning = \"⚠️ REMIX FUTURE CHANGE: The behavior of links `imagesizes` and `imagesrcset` will be changing in v2. \" + \"Only the React camel case versions will be valid. Please change to `imageSizes` and `imageSrcSet`. \" + \"For instructions on making this change see \" + \"https://remix.run/docs/en/v1.15.0/pages/v2#links-imagesizes-and-imagesrcset\";\nlet useTransitionWarning = \"⚠️ REMIX FUTURE CHANGE: `useTransition` will be removed in v2 in favor of `useNavigation`. \" + \"You can prepare for this change at your convenience by updating to `useNavigation`. \" + \"For instructions on making this change see \" + \"https://remix.run/docs/en/v1.15.0/pages/v2#usetransition\";\nlet fetcherTypeWarning = \"⚠️ REMIX FUTURE CHANGE: `fetcher.type` will be removed in v2. \" + \"Please use `fetcher.state`, `fetcher.formData`, and `fetcher.data` to achieve the same UX. \" + \"For instructions on making this change see \" + \"https://remix.run/docs/en/v1.15.0/pages/v2#usefetcher\";\nlet fetcherSubmissionWarning = \"⚠️ REMIX FUTURE CHANGE : `fetcher.submission` will be removed in v2. \" + \"The submission fields are now part of the fetcher object itself (`fetcher.formData`). \" + \"For instructions on making this change see \" + \"https://remix.run/docs/en/v1.15.0/pages/v2#usefetcher\";\n\n/**\n * Renders the `` tags for the current routes.\n *\n * @see https://remix.run/components/links\n */\nfunction Links() {\n let {\n manifest,\n routeModules\n } = useRemixContext();\n let {\n errors,\n matches: routerMatches\n } = useDataRouterStateContext();\n let matches = errors ? routerMatches.slice(0, routerMatches.findIndex(m => errors[m.route.id]) + 1) : routerMatches;\n let links = React.useMemo(() => getLinksForMatches(matches, routeModules, manifest), [matches, routeModules, manifest]);\n React.useEffect(() => {\n if (links.some(link => \"imagesizes\" in link || \"imagesrcset\" in link)) {\n logDeprecationOnce(linksWarning);\n }\n }, [links]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, links.map(link => {\n if (isPageLinkDescriptor(link)) {\n return /*#__PURE__*/React.createElement(PrefetchPageLinks, _extends({\n key: link.page\n }, link));\n }\n let imageSrcSet = null;\n\n // In React 17, and will warn\n // because the DOM attributes aren't recognized, so users need to pass\n // them in all lowercase to forward the attributes to the node without a\n // warning. Normalize so that either property can be used in Remix.\n if (\"useId\" in React) {\n if (link.imagesrcset) {\n link.imageSrcSet = imageSrcSet = link.imagesrcset;\n delete link.imagesrcset;\n }\n if (link.imagesizes) {\n link.imageSizes = link.imagesizes;\n delete link.imagesizes;\n }\n } else {\n if (link.imageSrcSet) {\n link.imagesrcset = imageSrcSet = link.imageSrcSet;\n delete link.imageSrcSet;\n }\n if (link.imageSizes) {\n link.imagesizes = link.imageSizes;\n delete link.imageSizes;\n }\n }\n return /*#__PURE__*/React.createElement(\"link\", _extends({\n key: link.rel + (link.href || \"\") + (imageSrcSet || \"\")\n }, link));\n }));\n}\n\n/**\n * This component renders all of the `` and\n * `` tags for all the assets (data, modules, css) of\n * a given page.\n *\n * @param props\n * @param props.page\n * @see https://remix.run/components/prefetch-page-links\n */\nfunction PrefetchPageLinks({\n page,\n ...dataLinkProps\n}) {\n let {\n router\n } = useDataRouterContext();\n let matches = React.useMemo(() => matchRoutes(router.routes, page), [router.routes, page]);\n if (!matches) {\n console.warn(`Tried to prefetch ${page} but no routes matched.`);\n return null;\n }\n return /*#__PURE__*/React.createElement(PrefetchPageLinksImpl, _extends({\n page: page,\n matches: matches\n }, dataLinkProps));\n}\nfunction usePrefetchedStylesheets(matches) {\n let {\n manifest,\n routeModules\n } = useRemixContext();\n let [styleLinks, setStyleLinks] = React.useState([]);\n React.useEffect(() => {\n let interrupted = false;\n getStylesheetPrefetchLinks(matches, manifest, routeModules).then(links => {\n if (!interrupted) setStyleLinks(links);\n });\n return () => {\n interrupted = true;\n };\n }, [matches, manifest, routeModules]);\n return styleLinks;\n}\nfunction PrefetchPageLinksImpl({\n page,\n matches: nextMatches,\n ...linkProps\n}) {\n let location = useLocation();\n let {\n manifest\n } = useRemixContext();\n let {\n matches\n } = useDataRouterStateContext();\n let newMatchesForData = React.useMemo(() => getNewMatchesForLinks(page, nextMatches, matches, manifest, location, \"data\"), [page, nextMatches, matches, manifest, location]);\n let newMatchesForAssets = React.useMemo(() => getNewMatchesForLinks(page, nextMatches, matches, manifest, location, \"assets\"), [page, nextMatches, matches, manifest, location]);\n let dataHrefs = React.useMemo(() => getDataLinkHrefs(page, newMatchesForData, manifest), [newMatchesForData, page, manifest]);\n let moduleHrefs = React.useMemo(() => getModuleLinkHrefs(newMatchesForAssets, manifest), [newMatchesForAssets, manifest]);\n\n // needs to be a hook with async behavior because we need the modules, not\n // just the manifest like the other links in here.\n let styleLinks = usePrefetchedStylesheets(newMatchesForAssets);\n return /*#__PURE__*/React.createElement(React.Fragment, null, dataHrefs.map(href => /*#__PURE__*/React.createElement(\"link\", _extends({\n key: href,\n rel: \"prefetch\",\n as: \"fetch\",\n href: href\n }, linkProps))), moduleHrefs.map(href => /*#__PURE__*/React.createElement(\"link\", _extends({\n key: href,\n rel: \"modulepreload\",\n href: href\n }, linkProps))), styleLinks.map(link =>\n /*#__PURE__*/\n // these don't spread `linkProps` because they are full link descriptors\n // already with their own props\n React.createElement(\"link\", _extends({\n key: link.href\n }, link))));\n}\n\n/**\n * Renders the `` and `<meta>` tags for the current routes.\n *\n * @see https://remix.run/components/meta\n */\nfunction V1Meta() {\n let {\n routeModules\n } = useRemixContext();\n let {\n errors,\n matches: routerMatches,\n loaderData\n } = useDataRouterStateContext();\n let location = useLocation();\n let matches = errors ? routerMatches.slice(0, routerMatches.findIndex(m => errors[m.route.id]) + 1) : routerMatches;\n let meta = {};\n let parentsData = {};\n for (let match of matches) {\n let routeId = match.route.id;\n let data = loaderData[routeId];\n let params = match.params;\n let routeModule = routeModules[routeId];\n if (routeModule.meta) {\n let routeMeta = typeof routeModule.meta === \"function\" ? routeModule.meta({\n data,\n parentsData,\n params,\n location\n }) : routeModule.meta;\n if (routeMeta && Array.isArray(routeMeta)) {\n throw new Error(\"The route at \" + match.route.path + \" returns an array. This is only supported with the `v2_meta` future flag \" + \"in the Remix config. Either set the flag to `true` or update the route's \" + \"meta function to return an object.\" + \"\\n\\nTo reference the v1 meta function API, see https://remix.run/route/meta\"\n // TODO: Add link to the docs once they are written\n // + \"\\n\\nTo reference future flags and the v2 meta API, see https://remix.run/file-conventions/remix-config#future-v2-meta.\"\n );\n }\n\n Object.assign(meta, routeMeta);\n }\n parentsData[routeId] = data;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, Object.entries(meta).map(([name, value]) => {\n if (!value) {\n return null;\n }\n if ([\"charset\", \"charSet\"].includes(name)) {\n return /*#__PURE__*/React.createElement(\"meta\", {\n key: \"charSet\",\n charSet: value\n });\n }\n if (name === \"title\") {\n return /*#__PURE__*/React.createElement(\"title\", {\n key: \"title\"\n }, String(value));\n }\n\n // Open Graph tags use the `property` attribute, while other meta tags\n // use `name`. See https://ogp.me/\n //\n // Namespaced attributes:\n // - https://ogp.me/#type_music\n // - https://ogp.me/#type_video\n // - https://ogp.me/#type_article\n // - https://ogp.me/#type_book\n // - https://ogp.me/#type_profile\n //\n // Facebook specific tags begin with `fb:` and also use the `property`\n // attribute.\n //\n // Twitter specific tags begin with `twitter:` but they use `name`, so\n // they are excluded.\n let isOpenGraphTag = /^(og|music|video|article|book|profile|fb):.+$/.test(name);\n return [value].flat().map(content => {\n if (isOpenGraphTag) {\n return /*#__PURE__*/React.createElement(\"meta\", {\n property: name,\n content: content,\n key: name + content\n });\n }\n if (typeof content === \"string\") {\n return /*#__PURE__*/React.createElement(\"meta\", {\n name: name,\n content: content,\n key: name + content\n });\n }\n return /*#__PURE__*/React.createElement(\"meta\", _extends({\n key: name + JSON.stringify(content)\n }, content));\n });\n }));\n}\nfunction V2Meta() {\n let {\n routeModules\n } = useRemixContext();\n let {\n errors,\n matches: routerMatches,\n loaderData\n } = useDataRouterStateContext();\n let location = useLocation();\n let _matches = errors ? routerMatches.slice(0, routerMatches.findIndex(m => errors[m.route.id]) + 1) : routerMatches;\n let meta = [];\n let leafMeta = null;\n let matches = [];\n for (let i = 0; i < _matches.length; i++) {\n let _match = _matches[i];\n let routeId = _match.route.id;\n let data = loaderData[routeId];\n let params = _match.params;\n let routeModule = routeModules[routeId];\n let routeMeta = [];\n let match = {\n id: routeId,\n data,\n meta: [],\n params: _match.params,\n pathname: _match.pathname,\n handle: _match.route.handle,\n // TODO: Remove in v2. Only leaving it for now because we used it in\n // examples and there's no reason to crash someone's build for one line.\n // They'll get a TS error from the type updates anyway.\n // @ts-expect-error\n get route() {\n console.warn(\"The meta function in \" + _match.route.path + \" accesses the `route` property on `matches`. This is deprecated and will be removed in Remix version 2. See\");\n return _match.route;\n }\n };\n matches[i] = match;\n if (routeModule !== null && routeModule !== void 0 && routeModule.meta) {\n routeMeta = typeof routeModule.meta === \"function\" ? routeModule.meta({\n data,\n params,\n location,\n matches\n }) : Array.isArray(routeModule.meta) ? [...routeModule.meta] : routeModule.meta;\n } else if (leafMeta) {\n // We only assign the route's meta to the nearest leaf if there is no meta\n // export in the route. The meta function may return a falsey value which\n // is effectively the same as an empty array.\n routeMeta = [...leafMeta];\n }\n routeMeta = routeMeta || [];\n if (!Array.isArray(routeMeta)) {\n throw new Error(\"The `v2_meta` API is enabled in the Remix config, but the route at \" + _match.route.path + \" returns an invalid value. In v2, all route meta functions must \" + \"return an array of meta objects.\" +\n // TODO: Add link to the docs once they are written\n // \"\\n\\nTo reference future flags and the v2 meta API, see https://remix.run/file-conventions/remix-config#future-v2-meta.\" +\n \"\\n\\nTo reference the v1 meta function API, see https://remix.run/route/meta\");\n }\n match.meta = routeMeta;\n matches[i] = match;\n meta = [...routeMeta];\n leafMeta = meta;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, meta.flat().map(metaProps => {\n if (!metaProps) {\n return null;\n }\n if (\"tagName\" in metaProps) {\n let tagName = metaProps.tagName;\n delete metaProps.tagName;\n if (!isValidMetaTag(tagName)) {\n console.warn(`A meta object uses an invalid tagName: ${tagName}. Expected either 'link' or 'meta'`);\n return null;\n }\n let Comp = tagName;\n return /*#__PURE__*/React.createElement(Comp, _extends({\n key: JSON.stringify(metaProps)\n }, metaProps));\n }\n if (\"title\" in metaProps) {\n return /*#__PURE__*/React.createElement(\"title\", {\n key: \"title\"\n }, String(metaProps.title));\n }\n if (\"charset\" in metaProps) {\n metaProps.charSet ?? (metaProps.charSet = metaProps.charset);\n delete metaProps.charset;\n }\n if (\"charSet\" in metaProps && metaProps.charSet != null) {\n return typeof metaProps.charSet === \"string\" ? /*#__PURE__*/React.createElement(\"meta\", {\n key: \"charSet\",\n charSet: metaProps.charSet\n }) : null;\n }\n if (\"script:ld+json\" in metaProps) {\n let json = null;\n try {\n json = JSON.stringify(metaProps[\"script:ld+json\"]);\n } catch (err) {}\n return json != null && /*#__PURE__*/React.createElement(\"script\", {\n key: \"script:ld+json\",\n type: \"application/ld+json\",\n dangerouslySetInnerHTML: {\n __html: JSON.stringify(metaProps[\"script:ld+json\"])\n }\n });\n }\n return /*#__PURE__*/React.createElement(\"meta\", _extends({\n key: JSON.stringify(metaProps)\n }, metaProps));\n }));\n}\nfunction isValidMetaTag(tagName) {\n return typeof tagName === \"string\" && /^(meta|link)$/.test(tagName);\n}\nfunction Meta() {\n let {\n future\n } = useRemixContext();\n return future !== null && future !== void 0 && future.v2_meta ? /*#__PURE__*/React.createElement(V2Meta, null) : /*#__PURE__*/React.createElement(V1Meta, null);\n}\nfunction Await(props) {\n return /*#__PURE__*/React.createElement(Await$1, props);\n}\n\n/**\n * Tracks whether Remix has finished hydrating or not, so scripts can be skipped\n * during client-side updates.\n */\nlet isHydrated = false;\n/**\n * Renders the `<script>` tags needed for the initial render. Bundles for\n * additional routes are loaded later as needed.\n *\n * @param props Additional properties to add to each script tag that is rendered.\n * In addition to scripts, \\<link rel=\"modulepreload\"> tags receive the crossOrigin\n * property if provided.\n *\n * @see https://remix.run/components/scripts\n */\nfunction Scripts(props) {\n let {\n manifest,\n serverHandoffString,\n abortDelay\n } = useRemixContext();\n let {\n router,\n static: isStatic,\n staticContext\n } = useDataRouterContext();\n let {\n matches\n } = useDataRouterStateContext();\n let navigation = useNavigation();\n React.useEffect(() => {\n isHydrated = true;\n }, []);\n let deferredScripts = [];\n let initialScripts = React.useMemo(() => {\n var _manifest$hmr;\n let contextScript = staticContext ? `window.__remixContext = ${serverHandoffString};` : \" \";\n let activeDeferreds = staticContext === null || staticContext === void 0 ? void 0 : staticContext.activeDeferreds;\n // This sets up the __remixContext with utility functions used by the\n // deferred scripts.\n // - __remixContext.p is a function that takes a resolved value or error and returns a promise.\n // This is used for transmitting pre-resolved promises from the server to the client.\n // - __remixContext.n is a function that takes a routeID and key to returns a promise for later\n // resolution by the subsequently streamed chunks.\n // - __remixContext.r is a function that takes a routeID, key and value or error and resolves\n // the promise created by __remixContext.n.\n // - __remixContext.t is a a map or routeId to keys to an object containing `e` and `r` methods\n // to resolve or reject the promise created by __remixContext.n.\n // - __remixContext.a is the active number of deferred scripts that should be rendered to match\n // the SSR tree for hydration on the client.\n contextScript += !activeDeferreds ? \"\" : [\"__remixContext.p = function(v,e,p,x) {\", \" if (typeof e !== 'undefined') {\", process.env.NODE_ENV === \"development\" ? \" x=new Error(e.message);\\n x.stack=e.stack;\" : ' x=new Error(\"Unexpected Server Error\");\\n x.stack=undefined;', \" p=Promise.reject(x);\", \" } else {\", \" p=Promise.resolve(v);\", \" }\", \" return p;\", \"};\", \"__remixContext.n = function(i,k) {\", \" __remixContext.t = __remixContext.t || {};\", \" __remixContext.t[i] = __remixContext.t[i] || {};\", \" let p = new Promise((r, e) => {__remixContext.t[i][k] = {r:(v)=>{r(v);},e:(v)=>{e(v);}};});\", typeof abortDelay === \"number\" ? `setTimeout(() => {if(typeof p._error !== \"undefined\" || typeof p._data !== \"undefined\"){return;} __remixContext.t[i][k].e(new Error(\"Server timeout.\"))}, ${abortDelay});` : \"\", \" return p;\", \"};\", \"__remixContext.r = function(i,k,v,e,p,x) {\", \" p = __remixContext.t[i][k];\", \" if (typeof e !== 'undefined') {\", process.env.NODE_ENV === \"development\" ? \" x=new Error(e.message);\\n x.stack=e.stack;\" : ' x=new Error(\"Unexpected Server Error\");\\n x.stack=undefined;', \" p.e(x);\", \" } else {\", \" p.r(v);\", \" }\", \"};\"].join(\"\\n\") + Object.entries(activeDeferreds).map(([routeId, deferredData]) => {\n let pendingKeys = new Set(deferredData.pendingKeys);\n let promiseKeyValues = deferredData.deferredKeys.map(key => {\n if (pendingKeys.has(key)) {\n deferredScripts.push( /*#__PURE__*/React.createElement(DeferredHydrationScript, {\n key: `${routeId} | ${key}`,\n deferredData: deferredData,\n routeId: routeId,\n dataKey: key,\n scriptProps: props\n }));\n return `${JSON.stringify(key)}:__remixContext.n(${JSON.stringify(routeId)}, ${JSON.stringify(key)})`;\n } else {\n let trackedPromise = deferredData.data[key];\n if (typeof trackedPromise._error !== \"undefined\") {\n let toSerialize = process.env.NODE_ENV === \"development\" ? {\n message: trackedPromise._error.message,\n stack: trackedPromise._error.stack\n } : {\n message: \"Unexpected Server Error\",\n stack: undefined\n };\n return `${JSON.stringify(key)}:__remixContext.p(!1, ${escapeHtml(JSON.stringify(toSerialize))})`;\n } else {\n if (typeof trackedPromise._data === \"undefined\") {\n throw new Error(`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise?`);\n }\n return `${JSON.stringify(key)}:__remixContext.p(${escapeHtml(JSON.stringify(trackedPromise._data))})`;\n }\n }\n }).join(\",\\n\");\n return `Object.assign(__remixContext.state.loaderData[${JSON.stringify(routeId)}], {${promiseKeyValues}});`;\n }).join(\"\\n\") + (deferredScripts.length > 0 ? `__remixContext.a=${deferredScripts.length};` : \"\");\n let routeModulesScript = !isStatic ? \" \" : `${(_manifest$hmr = manifest.hmr) !== null && _manifest$hmr !== void 0 && _manifest$hmr.runtime ? `import ${JSON.stringify(manifest.hmr.runtime)};` : \"\"}import ${JSON.stringify(manifest.url)};\n${matches.map((match, index) => `import * as route${index} from ${JSON.stringify(manifest.routes[match.route.id].module)};`).join(\"\\n\")}\nwindow.__remixRouteModules = {${matches.map((match, index) => `${JSON.stringify(match.route.id)}:route${index}`).join(\",\")}};\n\nimport(${JSON.stringify(manifest.entry.module)});`;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: createHtml(contextScript),\n type: undefined\n })), /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: createHtml(routeModulesScript),\n type: \"module\",\n async: true\n })));\n // disabled deps array because we are purposefully only rendering this once\n // for hydration, after that we want to just continue rendering the initial\n // scripts as they were when the page first loaded\n // eslint-disable-next-line\n }, []);\n if (!isStatic && typeof __remixContext === \"object\" && __remixContext.a) {\n for (let i = 0; i < __remixContext.a; i++) {\n deferredScripts.push( /*#__PURE__*/React.createElement(DeferredHydrationScript, {\n key: i,\n scriptProps: props\n }));\n }\n }\n\n // avoid waterfall when importing the next route module\n let nextMatches = React.useMemo(() => {\n if (navigation.location) {\n // FIXME: can probably use transitionManager `nextMatches`\n let matches = matchRoutes(router.routes, navigation.location);\n invariant(matches, `No routes match path \"${navigation.location.pathname}\"`);\n return matches;\n }\n return [];\n }, [navigation.location, router.routes]);\n let routePreloads = matches.concat(nextMatches).map(match => {\n let route = manifest.routes[match.route.id];\n return (route.imports || []).concat([route.module]);\n }).flat(1);\n let preloads = isHydrated ? [] : manifest.entry.imports.concat(routePreloads);\n return isHydrated ? null : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"link\", {\n rel: \"modulepreload\",\n href: manifest.entry.module,\n crossOrigin: props.crossOrigin\n }), dedupe(preloads).map(path => /*#__PURE__*/React.createElement(\"link\", {\n key: path,\n rel: \"modulepreload\",\n href: path,\n crossOrigin: props.crossOrigin\n })), initialScripts, deferredScripts);\n}\nfunction DeferredHydrationScript({\n dataKey,\n deferredData,\n routeId,\n scriptProps\n}) {\n if (typeof document === \"undefined\" && deferredData && dataKey && routeId) {\n invariant(deferredData.pendingKeys.includes(dataKey), `Deferred data for route ${routeId} with key ${dataKey} was not pending but tried to render a script for it.`);\n }\n return /*#__PURE__*/React.createElement(React.Suspense, {\n fallback:\n // This makes absolutely no sense. The server renders null as a fallback,\n // but when hydrating, we need to render a script tag to avoid a hydration issue.\n // To reproduce a hydration mismatch, just render null as a fallback.\n typeof document === \"undefined\" && deferredData && dataKey && routeId ? null : /*#__PURE__*/React.createElement(\"script\", _extends({}, scriptProps, {\n async: true,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }))\n }, typeof document === \"undefined\" && deferredData && dataKey && routeId ? /*#__PURE__*/React.createElement(Await, {\n resolve: deferredData.data[dataKey],\n errorElement: /*#__PURE__*/React.createElement(ErrorDeferredHydrationScript, {\n dataKey: dataKey,\n routeId: routeId,\n scriptProps: scriptProps\n }),\n children: data => /*#__PURE__*/React.createElement(\"script\", _extends({}, scriptProps, {\n async: true,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `__remixContext.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${escapeHtml(JSON.stringify(data))});`\n }\n }))\n }) : /*#__PURE__*/React.createElement(\"script\", _extends({}, scriptProps, {\n async: true,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n })));\n}\nfunction ErrorDeferredHydrationScript({\n dataKey,\n routeId,\n scriptProps\n}) {\n let error = useAsyncError();\n let toSerialize = process.env.NODE_ENV === \"development\" ? {\n message: error.message,\n stack: error.stack\n } : {\n message: \"Unexpected Server Error\",\n stack: undefined\n };\n return /*#__PURE__*/React.createElement(\"script\", _extends({}, scriptProps, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `__remixContext.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, !1, ${escapeHtml(JSON.stringify(toSerialize))});`\n }\n }));\n}\nfunction dedupe(array) {\n return [...new Set(array)];\n}\n\n// TODO: Can this be re-exported from RR?\n\nfunction useMatches() {\n let {\n routeModules\n } = useRemixContext();\n let matches = useMatches$1();\n return React.useMemo(() => matches.map(match => {\n let remixMatch = {\n id: match.id,\n pathname: match.pathname,\n params: match.params,\n data: match.data,\n // Need to grab handle here since we don't have it at client-side route\n // creation time\n handle: routeModules[match.id].handle\n };\n return remixMatch;\n }), [matches, routeModules]);\n}\n\n/**\n * Returns the JSON parsed data from the current route's `loader`.\n *\n * @see https://remix.run/hooks/use-loader-data\n */\nfunction useLoaderData() {\n return useLoaderData$1();\n}\n\n/**\n * Returns the JSON parsed data from the current route's `action`.\n *\n * @see https://remix.run/hooks/use-action-data\n */\nfunction useActionData() {\n return useActionData$1();\n}\n\n/**\n * Returns everything you need to know about a page transition to build pending\n * navigation indicators and optimistic UI on data mutations.\n *\n * @deprecated in favor of useNavigation\n *\n * @see https://remix.run/hooks/use-transition\n */\nfunction useTransition() {\n let navigation = useNavigation();\n React.useEffect(() => {\n logDeprecationOnce(useTransitionWarning);\n }, []);\n return React.useMemo(() => convertNavigationToTransition(navigation), [navigation]);\n}\nfunction convertNavigationToTransition(navigation) {\n let {\n location,\n state,\n formMethod,\n formAction,\n formEncType,\n formData\n } = navigation;\n if (!location) {\n return IDLE_TRANSITION;\n }\n let isActionSubmission = formMethod != null && [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(formMethod.toUpperCase());\n if (state === \"submitting\" && formMethod && formAction && formEncType && formData) {\n if (isActionSubmission) {\n // Actively submitting to an action\n let transition = {\n location,\n state,\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData: formData,\n key: \"\"\n },\n type: \"actionSubmission\"\n };\n return transition;\n } else {\n // @remix-run/router doesn't mark loader submissions as state: \"submitting\"\n invariant(false, \"Encountered an unexpected navigation scenario in useTransition()\");\n }\n }\n if (state === \"loading\") {\n let {\n _isRedirect,\n _isFetchActionRedirect\n } = location.state || {};\n if (formMethod && formAction && formEncType && formData) {\n if (!_isRedirect) {\n if (isActionSubmission) {\n // We're reloading the same location after an action submission\n let transition = {\n location,\n state,\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData: formData,\n key: \"\"\n },\n type: \"actionReload\"\n };\n return transition;\n } else {\n // The new router fixes a bug in useTransition where the submission\n // \"action\" represents the request URL not the state of the <form> in\n // the DOM. Back-port it here to maintain behavior, but useNavigation\n // will fix this bug.\n let url = new URL(formAction, window.location.origin);\n\n // This typing override should be safe since this is only running for\n // GET submissions and over in @remix-run/router we have an invariant\n // if you have any non-string values in your FormData when we attempt\n // to convert them to URLSearchParams\n url.search = new URLSearchParams(formData.entries()).toString();\n\n // Actively \"submitting\" to a loader\n let transition = {\n location,\n state: \"submitting\",\n submission: {\n method: formMethod.toUpperCase(),\n action: url.pathname + url.search,\n encType: formEncType,\n formData: formData,\n key: \"\"\n },\n type: \"loaderSubmission\"\n };\n return transition;\n }\n } else {\n // Redirecting after a submission\n if (isActionSubmission) {\n let transition = {\n location,\n state,\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData: formData,\n key: \"\"\n },\n type: \"actionRedirect\"\n };\n return transition;\n } else {\n let transition = {\n location,\n state,\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData: formData,\n key: \"\"\n },\n type: \"loaderSubmissionRedirect\"\n };\n return transition;\n }\n }\n } else if (_isRedirect) {\n if (_isFetchActionRedirect) {\n let transition = {\n location,\n state,\n submission: undefined,\n type: \"fetchActionRedirect\"\n };\n return transition;\n } else {\n let transition = {\n location,\n state,\n submission: undefined,\n type: \"normalRedirect\"\n };\n return transition;\n }\n }\n }\n\n // If no scenarios above match, then it's a normal load!\n let transition = {\n location,\n state: \"loading\",\n submission: undefined,\n type: \"normalLoad\"\n };\n return transition;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n *\n * @see https://remix.run/api/remix#usefetchers\n */\nfunction useFetchers() {\n let fetchers = useFetchers$1();\n return fetchers.map(f => {\n let fetcher = convertRouterFetcherToRemixFetcher({\n state: f.state,\n data: f.data,\n formMethod: f.formMethod,\n formAction: f.formAction,\n formEncType: f.formEncType,\n formData: f.formData,\n json: f.json,\n text: f.text,\n \" _hasFetcherDoneAnything \": f[\" _hasFetcherDoneAnything \"]\n });\n addFetcherDeprecationWarnings(fetcher);\n return fetcher;\n });\n}\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n *\n * @see https://remix.run/hooks/use-fetcher\n */\nfunction useFetcher() {\n let fetcherRR = useFetcher$1();\n return React.useMemo(() => {\n let remixFetcher = convertRouterFetcherToRemixFetcher({\n state: fetcherRR.state,\n data: fetcherRR.data,\n formMethod: fetcherRR.formMethod,\n formAction: fetcherRR.formAction,\n formEncType: fetcherRR.formEncType,\n formData: fetcherRR.formData,\n json: fetcherRR.json,\n text: fetcherRR.text,\n \" _hasFetcherDoneAnything \": fetcherRR[\" _hasFetcherDoneAnything \"]\n });\n let fetcherWithComponents = {\n ...remixFetcher,\n load: fetcherRR.load,\n submit: fetcherRR.submit,\n Form: fetcherRR.Form\n };\n addFetcherDeprecationWarnings(fetcherWithComponents);\n return fetcherWithComponents;\n }, [fetcherRR]);\n}\nfunction addFetcherDeprecationWarnings(fetcher) {\n let type = fetcher.type;\n Object.defineProperty(fetcher, \"type\", {\n get() {\n logDeprecationOnce(fetcherTypeWarning);\n return type;\n },\n set(value) {\n // Devs should *not* be doing this but we don't want to break their\n // current app if they are\n type = value;\n },\n // These settings should make this behave like a normal object `type` field\n configurable: true,\n enumerable: true\n });\n let submission = fetcher.submission;\n Object.defineProperty(fetcher, \"submission\", {\n get() {\n logDeprecationOnce(fetcherSubmissionWarning);\n return submission;\n },\n set(value) {\n // Devs should *not* be doing this but we don't want to break their\n // current app if they are\n submission = value;\n },\n // These settings should make this behave like a normal object `type` field\n configurable: true,\n enumerable: true\n });\n}\nfunction convertRouterFetcherToRemixFetcher(fetcherRR) {\n let {\n state,\n formMethod,\n formAction,\n formEncType,\n formData,\n json,\n text,\n data\n } = fetcherRR;\n let isActionSubmission = formMethod != null && [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(formMethod.toUpperCase());\n if (state === \"idle\") {\n if (fetcherRR[\" _hasFetcherDoneAnything \"] === true) {\n let fetcher = {\n state: \"idle\",\n type: \"done\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n submission: undefined,\n data\n };\n return fetcher;\n } else {\n let fetcher = IDLE_FETCHER;\n return fetcher;\n }\n }\n if (state === \"submitting\" && formMethod && formAction && formEncType && (formData || json !== undefined || text !== undefined)) {\n if (isActionSubmission) {\n // Actively submitting to an action\n let fetcher = {\n state,\n type: \"actionSubmission\",\n formMethod: formMethod.toUpperCase(),\n formAction,\n formEncType,\n formData,\n json,\n text,\n // @ts-expect-error formData/json/text are mutually exclusive in the type,\n // so TS can't be sure these meet that criteria, but as a straight\n // assignment from the RR fetcher we know they will\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData,\n json,\n text,\n key: \"\"\n },\n data\n };\n return fetcher;\n } else {\n // @remix-run/router doesn't mark loader submissions as state: \"submitting\"\n invariant(false, \"Encountered an unexpected fetcher scenario in useFetcher()\");\n }\n }\n if (state === \"loading\") {\n if (formMethod && formAction && formEncType) {\n if (isActionSubmission) {\n if (data) {\n // In a loading state but we have data - must be an actionReload\n let fetcher = {\n state,\n type: \"actionReload\",\n formMethod: formMethod.toUpperCase(),\n formAction,\n formEncType,\n formData,\n json,\n text,\n // @ts-expect-error formData/json/text are mutually exclusive in the type,\n // so TS can't be sure these meet that criteria, but as a straight\n // assignment from the RR fetcher we know they will\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData,\n json,\n text,\n key: \"\"\n },\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state,\n type: \"actionRedirect\",\n formMethod: formMethod.toUpperCase(),\n formAction,\n formEncType,\n formData,\n json,\n text,\n // @ts-expect-error formData/json/text are mutually exclusive in the type,\n // so TS can't be sure these meet that criteria, but as a straight\n // assignment from the RR fetcher we know they will\n submission: {\n method: formMethod.toUpperCase(),\n action: formAction,\n encType: formEncType,\n formData,\n json,\n text,\n key: \"\"\n },\n data: undefined\n };\n return fetcher;\n }\n } else {\n // The new router fixes a bug in useTransition where the submission\n // \"action\" represents the request URL not the state of the <form> in\n // the DOM. Back-port it here to maintain behavior, but useNavigation\n // will fix this bug.\n let url = new URL(formAction, window.location.origin);\n if (formData) {\n // This typing override should be safe since this is only running for\n // GET submissions and over in @remix-run/router we have an invariant\n // if you have any non-string values in your FormData when we attempt\n // to convert them to URLSearchParams\n url.search = new URLSearchParams(formData.entries()).toString();\n }\n\n // Actively \"submitting\" to a loader\n let fetcher = {\n state: \"submitting\",\n type: \"loaderSubmission\",\n formMethod: formMethod.toUpperCase(),\n formAction,\n formEncType,\n formData,\n json,\n text,\n // @ts-expect-error formData/json/text are mutually exclusive in the type,\n // so TS can't be sure these meet that criteria, but as a straight\n // assignment from the RR fetcher we know they will\n submission: {\n method: formMethod.toUpperCase(),\n action: url.pathname + url.search,\n encType: formEncType,\n formData,\n json,\n text,\n key: \"\"\n },\n data\n };\n return fetcher;\n }\n }\n }\n\n // If all else fails, it's a normal load!\n let fetcher = {\n state: \"loading\",\n type: \"normalLoad\",\n formMethod: undefined,\n formAction: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n formEncType: undefined,\n submission: undefined,\n data\n };\n return fetcher;\n}\n\n// Dead Code Elimination magic for production builds.\n// This way devs don't have to worry about doing the NODE_ENV check themselves.\n// If running an un-bundled server outside of `remix dev` you will still need\n// to set the REMIX_DEV_SERVER_WS_PORT manually.\nconst LiveReload = process.env.NODE_ENV !== \"development\" ? () => null : function LiveReload({\n // TODO: remove REMIX_DEV_SERVER_WS_PORT in v2\n port,\n timeoutMs = 1000,\n nonce = undefined\n}) {\n let js = String.raw;\n return /*#__PURE__*/React.createElement(\"script\", {\n nonce: nonce,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: js`\n function remixLiveReloadConnect(config) {\n let protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n let host = location.hostname;\n let port = ${port} || (window.__remixContext && window.__remixContext.dev && window.__remixContext.dev.port) || ${Number(process.env.REMIX_DEV_SERVER_WS_PORT || 8002)};\n let socketPath = protocol + \"//\" + host + \":\" + port + \"/socket\";\n let ws = new WebSocket(socketPath);\n ws.onmessage = async (message) => {\n let event = JSON.parse(message.data);\n if (event.type === \"LOG\") {\n console.log(event.message);\n }\n if (event.type === \"RELOAD\") {\n console.log(\"💿 Reloading window ...\");\n window.location.reload();\n }\n if (event.type === \"HMR\") {\n if (!window.__hmr__ || !window.__hmr__.contexts) {\n console.log(\"💿 [HMR] No HMR context, reloading window ...\");\n window.location.reload();\n return;\n }\n if (!event.updates || !event.updates.length) return;\n let updateAccepted = false;\n let needsRevalidation = new Set();\n for (let update of event.updates) {\n console.log(\"[HMR] \" + update.reason + \" [\" + update.id +\"]\")\n if (update.revalidate) {\n needsRevalidation.add(update.routeId);\n console.log(\"[HMR] Revalidating [\" + update.routeId + \"]\");\n }\n let imported = await import(update.url + '?t=' + event.assetsManifest.hmr.timestamp);\n if (window.__hmr__.contexts[update.id]) {\n let accepted = window.__hmr__.contexts[update.id].emit(\n imported\n );\n if (accepted) {\n console.log(\"[HMR] Updated accepted by\", update.id);\n updateAccepted = true;\n }\n }\n }\n if (event.assetsManifest && window.__hmr__.contexts[\"remix:manifest\"]) {\n let accepted = window.__hmr__.contexts[\"remix:manifest\"].emit(\n { needsRevalidation, assetsManifest: event.assetsManifest }\n );\n if (accepted) {\n console.log(\"[HMR] Updated accepted by\", \"remix:manifest\");\n updateAccepted = true;\n }\n }\n if (!updateAccepted) {\n console.log(\"[HMR] Updated rejected, reloading...\");\n window.location.reload();\n }\n }\n };\n ws.onopen = () => {\n if (config && typeof config.onOpen === \"function\") {\n config.onOpen();\n }\n };\n ws.onclose = (event) => {\n if (event.code === 1006) {\n console.log(\"Remix dev asset server web socket closed. Reconnecting...\");\n setTimeout(\n () =>\n remixLiveReloadConnect({\n onOpen: () => window.location.reload(),\n }),\n ${String(timeoutMs)}\n );\n }\n };\n ws.onerror = (error) => {\n console.log(\"Remix dev asset server web socket error:\");\n console.error(error);\n };\n }\n remixLiveReloadConnect();\n `\n }\n });\n};\nfunction mergeRefs(...refs) {\n return value => {\n refs.forEach(ref => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n}\n\nexport { Await, Link, Links, LiveReload, Meta, NavLink, PrefetchPageLinks, RemixContext, RemixRoute, RemixRouteError, Scripts, composeEventHandlers, useActionData, useFetcher, useFetchers, useLoaderData, useMatches, useTransition };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport React__default, { useContext } from 'react';\nimport { useRouteError, isRouteErrorResponse } from 'react-router-dom';\n\nclass RemixErrorBoundary extends React__default.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: props.error || null,\n location: props.location\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application (even the HTML!) that will have no effect--the error page\n // continues to display. This gives us a mechanism to recover from the error\n // when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error || null,\n location: props.location\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location\n };\n }\n render() {\n if (this.state.error) {\n return /*#__PURE__*/React__default.createElement(this.props.component, {\n error: this.state.error\n });\n } else {\n return this.props.children;\n }\n }\n}\n\n/**\n * When app's don't provide a root level ErrorBoundary, we default to this.\n */\nfunction RemixRootDefaultErrorBoundary({\n error\n}) {\n // Only log client side to avoid double-logging on the server\n React__default.useEffect(() => {\n console.error(error);\n }, [error]);\n return /*#__PURE__*/React__default.createElement(\"html\", {\n lang: \"en\"\n }, /*#__PURE__*/React__default.createElement(\"head\", null, /*#__PURE__*/React__default.createElement(\"meta\", {\n charSet: \"utf-8\"\n }), /*#__PURE__*/React__default.createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width, initial-scale=1, viewport-fit=cover\"\n }), /*#__PURE__*/React__default.createElement(\"title\", null, \"Application Error!\")), /*#__PURE__*/React__default.createElement(\"body\", null, /*#__PURE__*/React__default.createElement(\"main\", {\n style: {\n fontFamily: \"system-ui, sans-serif\",\n padding: \"2rem\"\n }\n }, /*#__PURE__*/React__default.createElement(\"h1\", {\n style: {\n fontSize: \"24px\"\n }\n }, \"Application Error\"), error.stack ? /*#__PURE__*/React__default.createElement(\"pre\", {\n style: {\n padding: \"2rem\",\n background: \"hsla(10, 50%, 50%, 0.1)\",\n color: \"red\",\n overflow: \"auto\"\n }\n }, error.stack) : null), /*#__PURE__*/React__default.createElement(\"script\", {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"💿 Hey developer👋. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information.\"\n );\n `\n }\n })));\n}\nfunction V2_RemixRootDefaultErrorBoundary() {\n let error = useRouteError();\n if (isRouteErrorResponse(error)) {\n return /*#__PURE__*/React__default.createElement(RemixRootDefaultCatchBoundaryImpl, {\n caught: error\n });\n } else if (error instanceof Error) {\n return /*#__PURE__*/React__default.createElement(RemixRootDefaultErrorBoundary, {\n error: error\n });\n } else {\n let errorString = error == null ? \"Unknown Error\" : typeof error === \"object\" && \"toString\" in error ? error.toString() : JSON.stringify(error);\n return /*#__PURE__*/React__default.createElement(RemixRootDefaultErrorBoundary, {\n error: new Error(errorString)\n });\n }\n}\nlet RemixCatchContext = /*#__PURE__*/React__default.createContext(undefined);\n\n/**\n * Returns the status code and thrown response data.\n *\n * @deprecated Please enable the v2_errorBoundary flag\n *\n * @see https://remix.run/route/catch-boundary\n */\nfunction useCatch() {\n return useContext(RemixCatchContext);\n}\nfunction RemixCatchBoundary({\n catch: catchVal,\n component: Component,\n children\n}) {\n if (catchVal) {\n return /*#__PURE__*/React__default.createElement(RemixCatchContext.Provider, {\n value: catchVal\n }, /*#__PURE__*/React__default.createElement(Component, null));\n }\n return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);\n}\n\n/**\n * When app's don't provide a root level CatchBoundary, we default to this.\n */\nfunction RemixRootDefaultCatchBoundary() {\n let caught = useCatch();\n return /*#__PURE__*/React__default.createElement(RemixRootDefaultCatchBoundaryImpl, {\n caught: caught\n });\n}\nfunction RemixRootDefaultCatchBoundaryImpl({\n caught\n}) {\n return /*#__PURE__*/React__default.createElement(\"html\", {\n lang: \"en\"\n }, /*#__PURE__*/React__default.createElement(\"head\", null, /*#__PURE__*/React__default.createElement(\"meta\", {\n charSet: \"utf-8\"\n }), /*#__PURE__*/React__default.createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width, initial-scale=1, viewport-fit=cover\"\n }), /*#__PURE__*/React__default.createElement(\"title\", null, \"Unhandled Thrown Response!\")), /*#__PURE__*/React__default.createElement(\"body\", null, /*#__PURE__*/React__default.createElement(\"h1\", {\n style: {\n fontFamily: \"system-ui, sans-serif\",\n padding: \"2rem\"\n }\n }, caught.status, \" \", caught.statusText), /*#__PURE__*/React__default.createElement(\"script\", {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"💿 Hey developer👋. You can provide a way better UX than this when your app throws 404s (and other responses). Check out https://remix.run/guides/not-found for more information.\"\n );\n `\n }\n })));\n}\n\nexport { RemixCatchBoundary, RemixErrorBoundary, RemixRootDefaultCatchBoundary, RemixRootDefaultErrorBoundary, V2_RemixRootDefaultErrorBoundary, useCatch };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport { invariant as default };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parsePath } from 'react-router-dom';\nimport { loadRouteModule } from './routeModules.js';\n\n/**\n * Represents a `<link>` element.\n *\n * WHATWG Specification: https://html.spec.whatwg.org/multipage/semantics.html#the-link-element\n */\n\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Gets all the links for a set of matches. The modules are assumed to have been\n * loaded already.\n */\nfunction getLinksForMatches(matches, routeModules, manifest) {\n let descriptors = matches.map(match => {\n var _module$links;\n let module = routeModules[match.route.id];\n return ((_module$links = module.links) === null || _module$links === void 0 ? void 0 : _module$links.call(module)) || [];\n }).flat(1);\n let preloads = getCurrentPageModulePreloadHrefs(matches, manifest);\n return dedupe(descriptors, preloads);\n}\nasync function prefetchStyleLinks(routeModule) {\n if (!routeModule.links) return;\n let descriptors = routeModule.links();\n if (!descriptors) return;\n let styleLinks = [];\n for (let descriptor of descriptors) {\n if (!isPageLinkDescriptor(descriptor) && descriptor.rel === \"stylesheet\") {\n styleLinks.push({\n ...descriptor,\n rel: \"preload\",\n as: \"style\"\n });\n }\n }\n\n // don't block for non-matching media queries\n let matchingLinks = styleLinks.filter(link => !link.media || window.matchMedia(link.media).matches);\n await Promise.all(matchingLinks.map(prefetchStyleLink));\n}\nasync function prefetchStyleLink(descriptor) {\n return new Promise(resolve => {\n let link = document.createElement(\"link\");\n Object.assign(link, descriptor);\n function removeLink() {\n // if a navigation interrupts this prefetch React will update the <head>\n // and remove the link we put in there manually, so we check if it's still\n // there before trying to remove it\n if (document.head.contains(link)) {\n document.head.removeChild(link);\n }\n }\n link.onload = () => {\n removeLink();\n resolve();\n };\n link.onerror = () => {\n removeLink();\n resolve();\n };\n document.head.appendChild(link);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\nfunction isPageLinkDescriptor(object) {\n return object != null && typeof object.page === \"string\";\n}\nfunction isHtmlLinkDescriptor(object) {\n if (object == null) return false;\n\n // <link> may not have an href if <link rel=\"preload\"> is used with imagesrcset + imagesizes\n // https://github.com/remix-run/remix/issues/184\n // https://html.spec.whatwg.org/commit-snapshots/cb4f5ff75de5f4cbd7013c4abad02f21c77d4d1c/#attr-link-imagesrcset\n if (object.href == null) {\n return object.rel === \"preload\" && (typeof object.imageSrcSet === \"string\" || typeof object.imagesrcset === \"string\") && (typeof object.imageSizes === \"string\" || typeof object.imagesizes === \"string\");\n }\n return typeof object.rel === \"string\" && typeof object.href === \"string\";\n}\nasync function getStylesheetPrefetchLinks(matches, manifest, routeModules) {\n let links = await Promise.all(matches.map(async match => {\n let mod = await loadRouteModule(manifest.routes[match.route.id], routeModules);\n return mod.links ? mod.links() : [];\n }));\n return links.flat(1).filter(isHtmlLinkDescriptor).filter(link => link.rel === \"stylesheet\" || link.rel === \"preload\").map(link => link.rel === \"preload\" ? {\n ...link,\n rel: \"prefetch\"\n } : {\n ...link,\n rel: \"prefetch\",\n as: \"style\"\n });\n}\n\n// This is ridiculously identical to transition.ts `filterMatchesToLoad`\nfunction getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, location, mode) {\n let path = parsePathPatch(page);\n let isNew = (match, index) => {\n if (!currentMatches[index]) return true;\n return match.route.id !== currentMatches[index].route.id;\n };\n let matchPathChanged = (match, index) => {\n var _currentMatches$index;\n return (\n // param change, /users/123 -> /users/456\n currentMatches[index].pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n ((_currentMatches$index = currentMatches[index].route.path) === null || _currentMatches$index === void 0 ? void 0 : _currentMatches$index.endsWith(\"*\")) && currentMatches[index].params[\"*\"] !== match.params[\"*\"]\n );\n };\n\n // NOTE: keep this mostly up-to-date w/ the transition data diff, but this\n // version doesn't care about submissions\n let newMatches = mode === \"data\" && location.search !== path.search ?\n // this is really similar to stuff in transition.ts, maybe somebody smarter\n // than me (or in less of a hurry) can share some of it. You're the best.\n nextMatches.filter((match, index) => {\n let manifestRoute = manifest.routes[match.route.id];\n if (!manifestRoute.hasLoader) {\n return false;\n }\n if (isNew(match, index) || matchPathChanged(match, index)) {\n return true;\n }\n if (match.route.shouldRevalidate) {\n var _currentMatches$;\n let routeChoice = match.route.shouldRevalidate({\n currentUrl: new URL(location.pathname + location.search + location.hash, window.origin),\n currentParams: ((_currentMatches$ = currentMatches[0]) === null || _currentMatches$ === void 0 ? void 0 : _currentMatches$.params) || {},\n nextUrl: new URL(page, window.origin),\n nextParams: match.params,\n defaultShouldRevalidate: true\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return true;\n }) : nextMatches.filter((match, index) => {\n let manifestRoute = manifest.routes[match.route.id];\n return (mode === \"assets\" || manifestRoute.hasLoader) && (isNew(match, index) || matchPathChanged(match, index));\n });\n return newMatches;\n}\nfunction getDataLinkHrefs(page, matches, manifest) {\n let path = parsePathPatch(page);\n return dedupeHrefs(matches.filter(match => manifest.routes[match.route.id].hasLoader).map(match => {\n let {\n pathname,\n search\n } = path;\n let searchParams = new URLSearchParams(search);\n searchParams.set(\"_data\", match.route.id);\n return `${pathname}?${searchParams}`;\n }));\n}\nfunction getModuleLinkHrefs(matches, manifestPatch) {\n return dedupeHrefs(matches.map(match => {\n let route = manifestPatch.routes[match.route.id];\n let hrefs = [route.module];\n if (route.imports) {\n hrefs = hrefs.concat(route.imports);\n }\n return hrefs;\n }).flat(1));\n}\n\n// The `<Script>` will render rel=modulepreload for the current page, we don't\n// need to include them in a page prefetch, this gives us the list to remove\n// while deduping.\nfunction getCurrentPageModulePreloadHrefs(matches, manifest) {\n return dedupeHrefs(matches.map(match => {\n let route = manifest.routes[match.route.id];\n let hrefs = [route.module];\n if (route.imports) {\n hrefs = hrefs.concat(route.imports);\n }\n return hrefs;\n }).flat(1));\n}\nfunction dedupeHrefs(hrefs) {\n return [...new Set(hrefs)];\n}\nfunction dedupe(descriptors, preloads) {\n let set = new Set();\n let preloadsSet = new Set(preloads);\n return descriptors.reduce((deduped, descriptor) => {\n let alreadyModulePreload = !isPageLinkDescriptor(descriptor) && descriptor.as === \"script\" && descriptor.href && preloadsSet.has(descriptor.href);\n if (alreadyModulePreload) {\n return deduped;\n }\n let str = JSON.stringify(descriptor);\n if (!set.has(str)) {\n set.add(str);\n deduped.push(descriptor);\n }\n return deduped;\n }, []);\n}\n\n// https://github.com/remix-run/history/issues/897\nfunction parsePathPatch(href) {\n let path = parsePath(href);\n if (path.search === undefined) path.search = \"\";\n return path;\n}\n\nexport { dedupe, getDataLinkHrefs, getLinksForMatches, getModuleLinkHrefs, getNewMatchesForLinks, getStylesheetPrefetchLinks, isHtmlLinkDescriptor, isPageLinkDescriptor, prefetchStyleLinks };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n/**\n * A React component that is rendered when the server throws a Response.\n *\n * @deprecated Please enable the v2_errorBoundary flag\n *\n * @see https://remix.run/route/catch-boundary\n */\n\n/**\n * A React component that is rendered when there is an error on a route.\n *\n * @deprecated Please enable the v2_errorBoundary flag\n *\n * @see https://remix.run/route/error-boundary\n */\n\n/**\n * V2 version of the ErrorBoundary that eliminates the distinction between\n * Error and Catch Boundaries and behaves like RR 6.4 errorElement and captures\n * errors with useRouteError()\n */\n\n/**\n * A function that defines `<link>` tags to be inserted into the `<head>` of\n * the document on route transitions.\n *\n * @see https://remix.run/route/meta\n */\n\n/**\n * A function that returns an object of name + content pairs to use for\n * `<meta>` tags for a route. These tags will be merged with (and take\n * precedence over) tags from parent routes.\n *\n * @see https://remix.run/route/meta\n */\n\n// TODO: Replace in v2\n\n/**\n * A name/content pair used to render `<meta>` tags in a meta function for a\n * route. The value can be either a string, which will render a single `<meta>`\n * tag, or an array of strings that will render multiple tags with the same\n * `name` attribute.\n */\n\n// TODO: Replace in v2\n\n/**\n * A React component that is rendered for a route.\n */\n\n/**\n * An arbitrary object that is associated with a route.\n *\n * @see https://remix.run/route/handle\n */\n\nasync function loadRouteModule(route, routeModulesCache) {\n if (route.id in routeModulesCache) {\n return routeModulesCache[route.id];\n }\n try {\n let routeModule = await import( /* webpackIgnore: true */route.module);\n routeModulesCache[route.id] = routeModule;\n return routeModule;\n } catch (error) {\n // User got caught in the middle of a deploy and the CDN no longer has the\n // asset we're trying to import! Reload from the server and the user\n // (should) get the new manifest--unless the developer purged the static\n // assets, the manifest path, but not the documents 😬\n window.location.reload();\n return new Promise(() => {\n // check out of this hook cause the DJs never gonna re[s]olve this\n });\n }\n}\n\n/**\n * @deprecated The `unstable_shouldReload` function has been removed, so this\n * function will never run and route data will be revalidated on every request.\n * Please update the function name to `shouldRevalidate` and use the\n * `ShouldRevalidateFunction` interface.\n */\n\nexport { loadRouteModule };\n","export default function _AwaitValue(value) {\n this.wrapped = value;\n}","import AwaitValue from \"./AwaitValue.js\";\nexport default function _awaitAsyncGenerator(value) {\n return new AwaitValue(value);\n}","import AwaitValue from \"./AwaitValue.js\";\nexport default function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {\n if (wrappedAwait) {\n resume(key === \"return\" ? \"return\" : \"next\", arg);\n return;\n }\n\n settle(result.done ? \"return\" : \"normal\", arg);\n }, function (err) {\n resume(\"throw\", err);\n });\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen[\"return\"] !== \"function\") {\n this[\"return\"] = undefined;\n }\n}\n\nAsyncGenerator.prototype[typeof Symbol === \"function\" && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n};\n\nAsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n};\n\nAsyncGenerator.prototype[\"throw\"] = function (arg) {\n return this._invoke(\"throw\", arg);\n};\n\nAsyncGenerator.prototype[\"return\"] = function (arg) {\n return this._invoke(\"return\", arg);\n};","import AsyncGenerator from \"./AsyncGenerator.js\";\nexport default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n}","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { AbortedDeferredError, UNSAFE_DeferredData } from '@remix-run/router';\n\n/**\n * Data for a route that was returned from a `loader()`.\n *\n * Note: This moves to unknown in ReactRouter and eventually likely in Remix\n */\n\nfunction isCatchResponse(response) {\n return response.headers.get(\"X-Remix-Catch\") != null;\n}\nfunction isErrorResponse(response) {\n return response.headers.get(\"X-Remix-Error\") != null;\n}\nfunction isRedirectResponse(response) {\n return response.headers.get(\"X-Remix-Redirect\") != null;\n}\nfunction isDeferredResponse(response) {\n var _response$headers$get;\n return !!((_response$headers$get = response.headers.get(\"Content-Type\")) !== null && _response$headers$get !== void 0 && _response$headers$get.match(/text\\/remix-deferred/));\n}\nasync function fetchData(request, routeId, retry = 0) {\n let url = new URL(request.url);\n url.searchParams.set(\"_data\", routeId);\n let init = {\n signal: request.signal\n };\n if (request.method !== \"GET\") {\n init.method = request.method;\n let contentType = request.headers.get(\"Content-Type\");\n\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n init.headers = {\n \"Content-Type\": contentType\n };\n init.body = JSON.stringify(await request.json());\n } else if (contentType && /\\btext\\/plain\\b/.test(contentType)) {\n init.headers = {\n \"Content-Type\": contentType\n };\n init.body = await request.text();\n } else if (contentType && /\\bapplication\\/x-www-form-urlencoded\\b/.test(contentType)) {\n init.body = new URLSearchParams(await request.text());\n } else {\n init.body = await request.formData();\n }\n }\n if (retry > 0) {\n // Retry up to 3 times waiting 50, 250, 1250 ms\n // between retries for a total of 1550 ms before giving up.\n await new Promise(resolve => setTimeout(resolve, 5 ** retry * 10));\n }\n let revalidation = window.__remixRevalidation;\n let response = await fetch(url.href, init).catch(error => {\n if (typeof revalidation === \"number\" && revalidation === window.__remixRevalidation && (error === null || error === void 0 ? void 0 : error.name) === \"TypeError\" && retry < 3) {\n return fetchData(request, routeId, retry + 1);\n }\n throw error;\n });\n if (isErrorResponse(response)) {\n let data = await response.json();\n let error = new Error(data.message);\n error.stack = data.stack;\n return error;\n }\n return response;\n}\nconst DEFERRED_VALUE_PLACEHOLDER_PREFIX = \"__deferred_promise:\";\nasync function parseDeferredReadableStream(stream) {\n if (!stream) {\n throw new Error(\"parseDeferredReadableStream requires stream argument\");\n }\n let deferredData;\n let deferredResolvers = {};\n try {\n let sectionReader = readStreamSections(stream);\n\n // Read the first section to get the critical data\n let initialSectionResult = await sectionReader.next();\n let initialSection = initialSectionResult.value;\n if (!initialSection) throw new Error(\"no critical data\");\n let criticalData = JSON.parse(initialSection);\n\n // Setup deferred data and resolvers for later based on the critical data\n if (typeof criticalData === \"object\" && criticalData !== null) {\n for (let [eventKey, value] of Object.entries(criticalData)) {\n if (typeof value !== \"string\" || !value.startsWith(DEFERRED_VALUE_PLACEHOLDER_PREFIX)) {\n continue;\n }\n deferredData = deferredData || {};\n deferredData[eventKey] = new Promise((resolve, reject) => {\n deferredResolvers[eventKey] = {\n resolve: value => {\n resolve(value);\n delete deferredResolvers[eventKey];\n },\n reject: error => {\n reject(error);\n delete deferredResolvers[eventKey];\n }\n };\n });\n }\n }\n\n // Read the rest of the stream and resolve deferred promises\n (async () => {\n try {\n for await (let section of sectionReader) {\n // Determine event type and data\n let [event, ...sectionDataStrings] = section.split(\":\");\n let sectionDataString = sectionDataStrings.join(\":\");\n let data = JSON.parse(sectionDataString);\n if (event === \"data\") {\n for (let [key, value] of Object.entries(data)) {\n if (deferredResolvers[key]) {\n deferredResolvers[key].resolve(value);\n }\n }\n } else if (event === \"error\") {\n for (let [key, value] of Object.entries(data)) {\n let err = new Error(value.message);\n err.stack = value.stack;\n if (deferredResolvers[key]) {\n deferredResolvers[key].reject(err);\n }\n }\n }\n }\n for (let [key, resolver] of Object.entries(deferredResolvers)) {\n resolver.reject(new AbortedDeferredError(`Deferred ${key} will never be resolved`));\n }\n } catch (error) {\n // Reject any existing deferred promises if something blows up\n for (let resolver of Object.values(deferredResolvers)) {\n resolver.reject(error);\n }\n }\n })();\n return new UNSAFE_DeferredData({\n ...criticalData,\n ...deferredData\n });\n } catch (error) {\n for (let resolver of Object.values(deferredResolvers)) {\n resolver.reject(error);\n }\n throw error;\n }\n}\nasync function* readStreamSections(stream) {\n let reader = stream.getReader();\n let buffer = [];\n let sections = [];\n let closed = false;\n let encoder = new TextEncoder();\n let decoder = new TextDecoder();\n let readStreamSection = async () => {\n if (sections.length > 0) return sections.shift();\n\n // Read from the stream until we have at least one complete section to process\n while (!closed && sections.length === 0) {\n let chunk = await reader.read();\n if (chunk.done) {\n closed = true;\n break;\n }\n // Buffer the raw chunks\n buffer.push(chunk.value);\n try {\n // Attempt to split off a section from the buffer\n let bufferedString = decoder.decode(mergeArrays(...buffer));\n let splitSections = bufferedString.split(\"\\n\\n\");\n if (splitSections.length >= 2) {\n // We have a complete section, so add it to the sections array\n sections.push(...splitSections.slice(0, -1));\n // Remove the section from the buffer and store the rest for future processing\n buffer = [encoder.encode(splitSections.slice(-1).join(\"\\n\\n\"))];\n }\n\n // If we successfully parsed at least one section, break out of reading the stream\n // to allow upstream processing of the processable sections\n if (sections.length > 0) {\n break;\n }\n } catch {\n // If we failed to parse the buffer it was because we failed to decode the stream\n // because we are missing bytes that we haven't yet received, so continue reading\n // from the stream until we have a complete section\n continue;\n }\n }\n\n // If we have a complete section, return it\n if (sections.length > 0) {\n return sections.shift();\n }\n\n // If we have no complete section, but we have no more chunks to process,\n // split those sections and clear out the buffer as there is no more data\n // to process. If this errors, let it bubble up as the stream ended\n // without valid data\n if (buffer.length > 0) {\n let bufferedString = decoder.decode(mergeArrays(...buffer));\n sections = bufferedString.split(\"\\n\\n\").filter(s => s);\n buffer = [];\n }\n\n // Return any remaining sections that have been processed\n return sections.shift();\n };\n let section = await readStreamSection();\n while (section) {\n yield section;\n section = await readStreamSection();\n }\n}\nfunction mergeArrays(...arrays) {\n let out = new Uint8Array(arrays.reduce((total, arr) => total + arr.length, 0));\n let offset = 0;\n for (let arr of arrays) {\n out.set(arr, offset);\n offset += arr.length;\n }\n return out;\n}\n\nexport { fetchData, isCatchResponse, isDeferredResponse, isErrorResponse, isRedirectResponse, parseDeferredReadableStream };\n","/**\n * @remix-run/react v1.18.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { redirect } from 'react-router-dom';\nimport { loadRouteModule } from './routeModules.js';\nimport { fetchData, isRedirectResponse, isCatchResponse, isDeferredResponse, parseDeferredReadableStream } from './data.js';\nimport { prefetchStyleLinks } from './links.js';\nimport invariant from './invariant.js';\nimport { RemixRoute, RemixRouteError } from './components.js';\n\n// NOTE: make sure to change the Route in server-runtime if you change this\n\n// NOTE: make sure to change the EntryRoute in server-runtime if you change this\n\n// Create a map of routes by parentId to use recursively instead of\n// repeatedly filtering the manifest.\nfunction groupRoutesByParentId(manifest) {\n let routes = {};\n Object.values(manifest).forEach(route => {\n let parentId = route.parentId || \"\";\n if (!routes[parentId]) {\n routes[parentId] = [];\n }\n routes[parentId].push(route);\n });\n return routes;\n}\nfunction createServerRoutes(manifest, routeModules, future, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest)) {\n return (routesByParentId[parentId] || []).map(route => {\n let hasErrorBoundary = future.v2_errorBoundary === true ? route.id === \"root\" || route.hasErrorBoundary : route.id === \"root\" || route.hasCatchBoundary || route.hasErrorBoundary;\n let dataRoute = {\n caseSensitive: route.caseSensitive,\n element: /*#__PURE__*/React.createElement(RemixRoute, {\n id: route.id\n }),\n errorElement: hasErrorBoundary ? /*#__PURE__*/React.createElement(RemixRouteError, {\n id: route.id\n }) : undefined,\n id: route.id,\n index: route.index,\n path: route.path,\n handle: routeModules[route.id].handle\n // Note: we don't need loader/action/shouldRevalidate on these routes\n // since they're for a static render\n };\n\n let children = createServerRoutes(manifest, routeModules, future, route.id, routesByParentId);\n if (children.length > 0) dataRoute.children = children;\n return dataRoute;\n });\n}\nfunction createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest, routeModulesCache, future) {\n return createClientRoutes(manifest, routeModulesCache, future, \"\", groupRoutesByParentId(manifest), needsRevalidation);\n}\nfunction createClientRoutes(manifest, routeModulesCache, future, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), needsRevalidation) {\n return (routesByParentId[parentId] || []).map(route => {\n let hasErrorBoundary = future.v2_errorBoundary === true ? route.id === \"root\" || route.hasErrorBoundary : route.id === \"root\" || route.hasCatchBoundary || route.hasErrorBoundary;\n let dataRoute = {\n caseSensitive: route.caseSensitive,\n element: /*#__PURE__*/React.createElement(RemixRoute, {\n id: route.id\n }),\n errorElement: hasErrorBoundary ? /*#__PURE__*/React.createElement(RemixRouteError, {\n id: route.id\n }) : undefined,\n id: route.id,\n index: route.index,\n path: route.path,\n // handle gets added in via useMatches since we aren't guaranteed to\n // have the route module available here\n handle: undefined,\n loader: createDataFunction(route, routeModulesCache, false),\n action: createDataFunction(route, routeModulesCache, true),\n shouldRevalidate: createShouldRevalidate(route, routeModulesCache, needsRevalidation)\n };\n let children = createClientRoutes(manifest, routeModulesCache, future, route.id, routesByParentId, needsRevalidation);\n if (children.length > 0) dataRoute.children = children;\n return dataRoute;\n });\n}\nfunction createShouldRevalidate(route, routeModules, needsRevalidation) {\n let handledRevalidation = false;\n return function (arg) {\n let module = routeModules[route.id];\n invariant(module, `Expected route module to be loaded for ${route.id}`);\n\n // When an HMR / HDR update happens we opt out of all user-defined\n // revalidation logic and the do as the dev server tells us the first\n // time router.revalidate() is called.\n if (needsRevalidation !== undefined && !handledRevalidation) {\n handledRevalidation = true;\n return needsRevalidation.has(route.id);\n }\n if (module.shouldRevalidate) {\n return module.shouldRevalidate(arg);\n }\n return arg.defaultShouldRevalidate;\n };\n}\nasync function loadRouteModuleWithBlockingLinks(route, routeModules) {\n let routeModule = await loadRouteModule(route, routeModules);\n await prefetchStyleLinks(routeModule);\n return routeModule;\n}\nfunction createDataFunction(route, routeModules, isAction) {\n return async ({\n request\n }) => {\n let routeModulePromise = loadRouteModuleWithBlockingLinks(route, routeModules);\n try {\n if (isAction && !route.hasAction) {\n let msg = `Route \"${route.id}\" does not have an action, but you are trying ` + `to submit to it. To fix this, please add an \\`action\\` function to the route`;\n console.error(msg);\n throw new Error(msg);\n } else if (!isAction && !route.hasLoader) {\n return null;\n }\n let result = await fetchData(request, route.id);\n if (result instanceof Error) {\n throw result;\n }\n if (isRedirectResponse(result)) {\n throw getRedirect(result);\n }\n if (isCatchResponse(result)) {\n throw result;\n }\n if (isDeferredResponse(result) && result.body) {\n return await parseDeferredReadableStream(result.body);\n }\n return result;\n } finally {\n await routeModulePromise;\n }\n };\n}\nfunction getRedirect(response) {\n let status = parseInt(response.headers.get(\"X-Remix-Status\"), 10) || 302;\n let url = response.headers.get(\"X-Remix-Redirect\");\n let headers = {};\n let revalidate = response.headers.get(\"X-Remix-Revalidate\");\n if (revalidate) {\n headers[\"X-Remix-Revalidate\"] = revalidate;\n }\n return redirect(url, {\n status,\n headers\n });\n}\n\nexport { createClientRoutes, createClientRoutesWithHMRRevalidationOptOut, createServerRoutes };\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase<LowerCaseFormMethod>;\n\n/**\n * Users can specify either lowercase or uppercase form methods on <Form>,\n * useSubmit(), <fetcher.Form>, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude<FormMethod, \"get\">;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude<V7_FormMethod, \"GET\">;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable<unknown> | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise<DataFunctionValue> | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise<DataFunctionValue> | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record<string, any>;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n (): Promise<Omit<R, ImmutableRouteKey>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | 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<string, RouteObjectType>(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\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 // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam<Path>;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam<Path>];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\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<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\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<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | 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<Mutable<Params>>(\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 if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\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 * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || 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 <a href> 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\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set<string> = new Set<string>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record<string, unknown>;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record<string, unknown>,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise<void>;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise<void>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key?: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n\n /**\n * Map of current blockers\n */\n blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial<FutureConfig>;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n activeDeferreds: Record<string, DeferredData> | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise<any>;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set<string>();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map<string, BlockerFunction>();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial<RouterState>): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n });\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean } = {}\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error);\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (ABSOLUTE_URL_REGEX.test(redirect.location) && isBrowser) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename = stripBasename(url.pathname, basename) == null;\n\n if (routerWindow.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let activeSubmission =\n submission || getSubmissionFromNavigation(state.navigation);\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: getLoadingNavigation(redirectLocation),\n fetcherSubmission: activeSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a submission, we will preserve it through the redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n activeSubmission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => createUseMatchesMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map<string, DeferredData>();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set<string>(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map<string, FetchLoadMatch>,\n fetchRedirectIds: Set<string>,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They only set `defaultShouldRevalidate` on\n // explicit revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n //\n // They automatically revalidate without even calling shouldRevalidate if:\n // - They were cancelled\n // - They're in the middle of their first load and therefore this is still\n // an initial load and not a revalidation\n //\n // If neither of those is true, then they _always_ check shouldRevalidate\n let fetcher = state.fetchers.get(key);\n let isPerformingInitialLoad =\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined &&\n // If a fetcher.load redirected then it'll be \"loading\" without any data\n // so ensure we're not processing the redirect from this fetcher\n !fetchRedirectIds.has(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate =\n cancelledFetcherLoads.includes(key) ||\n isPerformingInitialLoad ||\n shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters<ShouldRevalidateFunction>[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record<string, any> = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise<DataResult> {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n \" _hasFetcherDoneAnything \": true,\n };\n return fetcher;\n}\n//#endregion\n","import { RemixBrowser } from '@remix-run/react';\nimport { startTransition, StrictMode } from 'react';\nimport { hydrateRoot } from 'react-dom/client';\nimport { createStore } from 'jotai';\nimport { AtomFamilies, Atoms } from 'shared/atoms';\n\nimport 'core-js/es/object/has-own';\n\ndeclare global {\n interface Window {\n store: ReturnType<typeof createStore>;\n atoms: any;\n atomFamilies: any;\n }\n}\n\n// TODO load all polyfills\n// import('intersection-observer');\n\n// init window jotai store\nwindow.store = createStore();\nwindow.atoms = Atoms;\nwindow.atomFamilies = AtomFamilies;\n\nstartTransition(() => {\n hydrateRoot(\n document,\n <StrictMode>\n <RemixBrowser />\n </StrictMode>,\n );\n});\n","import { atom } from 'jotai';\n\ninterface ILegalPageTraffic {\n canonicalUrl: string;\n}\n\nexport const $LegalPageLevelTraffic = atom({} as ILegalPageTraffic);\n$LegalPageLevelTraffic.debugLabel = '$LegalPageLevelTraffic';\n","import { Region } from '@lemon8/web-app-shared/i18n';\nimport { atom } from 'jotai';\n\nexport type PageType = 'unsubscribe' | 'unsubscribe-success' | 'subscribe-success';\n\nexport interface EmailDataType {\n ticket: string;\n msgId: string;\n timestamp: number;\n from: string;\n to: string;\n sceneId: string;\n tid: number;\n region: Region | '';\n uid?: string;\n aid: string;\n /** 根据参数判断是否可以发起请求 */\n canRequest: boolean;\n}\n\nexport const EmailRequiredArr: Array<string> = [\n 'ticket',\n 'msg_id',\n 'timestamp',\n 'aid',\n 'from',\n 'to',\n 'tid',\n 'scene_id',\n 'region',\n];\n\nexport const $EmailData = atom<EmailDataType>({\n ticket: '',\n msgId: '',\n timestamp: 0,\n from: '',\n to: '',\n sceneId: '',\n tid: 0,\n region: '',\n uid: '',\n canRequest: false,\n aid: '',\n});\n\n$EmailData.debugLabel = '$EmailData';\n","import { Region } from '@lemon8/web-app-shared/i18n';\nimport { atom } from 'jotai';\n\nexport const $LegalRegion = atom({\n region: Region.us,\n});\n\n$LegalRegion.debugLabel = '$LegalRegion';\n","import { atom } from 'jotai';\n\nexport interface Location {\n href: string;\n path: string;\n hasNav?: boolean;\n}\n\nexport const $Location = atom<Location>({\n href: '',\n path: '',\n hasNav: true,\n});\n\n$Location.debugLabel = '$Location';\n","import {\n $ABTest,\n $I18nText,\n $Locale,\n $RenderConfig,\n $RootTraffic,\n $UserAgent,\n $WebUser,\n} from '@lemon8/web-app-shared/atom';\nimport { atom } from 'jotai';\nimport { $LegalPageLevelTraffic, $LegalRegion, $Location } from 'shared/atoms/common';\nimport { $EmailData } from 'shared/atoms/email';\n\nexport const $SharedAtom = atom('shared atom');\n\nexport const Atoms = {\n $Locale,\n $ABTest,\n $RenderConfig,\n $WebUser,\n $UserAgent,\n $I18nText,\n $RootTraffic,\n $SharedAtom,\n $LegalPageLevelTraffic,\n $LegalRegion,\n $Location,\n $EmailData,\n};\n\nexport const AtomFamilies = {};\n\nexport * from './common';\nexport * from './email';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$ABTest = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$ABTest = (0, jotai_1.atom)({\n versions: '',\n parameters: {},\n});\nexports.$ABTest.debugLabel = '$ABTest';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$Crawler = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$Crawler = (0, jotai_1.atom)({});\nexports.$Crawler.debugLabel = '$Crawler';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$I18nText = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$I18nText = (0, jotai_1.atom)({});\nexports.$I18nText.debugLabel = '$I18nText';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ab-test\"), exports);\n__exportStar(require(\"./crawler\"), exports);\n__exportStar(require(\"./i18n-text\"), exports);\n__exportStar(require(\"./locale\"), exports);\n__exportStar(require(\"./render-config\"), exports);\n__exportStar(require(\"./root-traffic\"), exports);\n__exportStar(require(\"./user-agent\"), exports);\n__exportStar(require(\"./web-user\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$Locale = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$Locale = (0, jotai_1.atom)({});\nexports.$Locale.debugLabel = '$Locale';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$RenderConfig = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$RenderConfig = (0, jotai_1.atom)({\n isSteamingSSR: false,\n});\nexports.$RenderConfig.debugLabel = '$RenderConfig';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$RootTraffic = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$RootTraffic = (0, jotai_1.atom)({});\nexports.$RootTraffic.debugLabel = '$RootTraffic';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$UserAgent = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$UserAgent = (0, jotai_1.atom)({\n isMobile: false,\n isBot: false,\n isiOS: false,\n isSafari: false,\n isInApp: false,\n isMacOS: false,\n});\nexports.$UserAgent.debugLabel = '$UserAgent';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$WebUser = void 0;\nconst jotai_1 = require(\"jotai\");\nexports.$WebUser = (0, jotai_1.atom)({\n webId: '',\n});\nexports.$WebUser.debugLabel = '$WebUser';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEuropeRegion = exports.EURO_COUNTRY_SET = exports.EURO_COUNTRY_LIST = void 0;\nexports.EURO_COUNTRY_LIST = [\n 'at',\n 'be',\n 'bg',\n 'hr',\n 'ch',\n 'cy',\n 'cz',\n 'de',\n 'dk',\n 'ee',\n 'el',\n 'fi',\n 'fr',\n 'gb',\n 'gr',\n 'hu',\n 'ie',\n 'it',\n 'lv',\n 'lt',\n 'lu',\n 'mt',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'sk',\n 'si',\n 'es',\n 'se',\n 'no',\n 'is',\n 'li',\n];\nexports.EURO_COUNTRY_SET = new Set(exports.EURO_COUNTRY_LIST);\nconst isEuropeRegion = (region) => exports.EURO_COUNTRY_SET.has(region);\nexports.isEuropeRegion = isEuropeRegion;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./region\"), exports);\n__exportStar(require(\"./language\"), exports);\n__exportStar(require(\"./europe\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegionHrefLangMap = exports.RegionFallbackLanguageMap = exports.SupportedLanguageMetas = exports.SupportedLanguages = exports.LanguageDisplayNameMap = exports.Language = void 0;\nconst region_1 = require(\"./region\");\nvar Language;\n(function (Language) {\n Language[\"en\"] = \"en\";\n Language[\"id\"] = \"id\";\n Language[\"ja\"] = \"ja\";\n Language[\"ms\"] = \"ms\";\n Language[\"th\"] = \"th\";\n Language[\"vi\"] = \"vi\";\n Language[\"fil\"] = \"fil\";\n})(Language = exports.Language || (exports.Language = {}));\nexports.LanguageDisplayNameMap = {\n en: 'English',\n id: 'Bahasa Indonesia',\n ja: '日本語',\n ms: 'Bahasa Melayu',\n th: 'ไทย',\n vi: 'Tiếng Việt',\n fil: 'Pilipino',\n};\nexports.SupportedLanguages = [\n Language.en,\n Language.id,\n Language.ja,\n Language.ms,\n Language.th,\n Language.vi,\n];\nexports.SupportedLanguageMetas = exports.SupportedLanguages.map((language) => ({\n language,\n displayName: exports.LanguageDisplayNameMap[language],\n})).sort((l, r) => (l.displayName > r.displayName ? 1 : -1));\nexports.RegionFallbackLanguageMap = {\n [region_1.Region.jp]: Language.ja,\n [region_1.Region.th]: Language.th,\n [region_1.Region.my]: Language.ms,\n [region_1.Region.id]: Language.id,\n [region_1.Region.vn]: Language.vi,\n [region_1.Region.us]: Language.en,\n [region_1.Region.gb]: Language.en,\n [region_1.Region.sg]: Language.en,\n [region_1.Region.ph]: Language.en,\n};\nexports.RegionHrefLangMap = {\n [region_1.Region.jp]: 'ja-jp',\n [region_1.Region.th]: 'th-th',\n [region_1.Region.my]: 'ms-my',\n [region_1.Region.id]: 'id-id',\n [region_1.Region.vn]: 'vi-vn',\n [region_1.Region.us]: 'en-us',\n [region_1.Region.gb]: 'en-gb',\n [region_1.Region.sg]: 'en-sg',\n [region_1.Region.ph]: 'en-ph',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRegionIDC = exports.IDCRegion = exports.RegionDisplayMap = exports.Region = void 0;\n/**\n * ISO 639-1 Language Code\n */\nvar Region;\n(function (Region) {\n Region[\"jp\"] = \"jp\";\n Region[\"th\"] = \"th\";\n Region[\"my\"] = \"my\";\n Region[\"id\"] = \"id\";\n Region[\"ph\"] = \"ph\";\n Region[\"vn\"] = \"vn\";\n Region[\"us\"] = \"us\";\n Region[\"gb\"] = \"gb\";\n Region[\"sg\"] = \"sg\";\n})(Region = exports.Region || (exports.Region = {}));\nexports.RegionDisplayMap = {\n [Region.jp]: '日本',\n [Region.th]: 'ไทย',\n [Region.my]: 'Malaysia',\n [Region.id]: 'Indonesia',\n [Region.vn]: 'Việt Nam',\n [Region.us]: 'US',\n [Region.gb]: 'UK',\n [Region.sg]: 'Singapore',\n [Region.ph]: 'Philippines',\n};\nvar IDCRegion;\n(function (IDCRegion) {\n IDCRegion[\"SG\"] = \"sg\";\n IDCRegion[\"VA\"] = \"va\";\n})(IDCRegion = exports.IDCRegion || (exports.IDCRegion = {}));\nconst getRegionIDC = (region) => {\n return [Region.jp, Region.us, Region.gb].includes(region) ? IDCRegion.VA : IDCRegion.SG;\n};\nexports.getRegionIDC = getRegionIDC;\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\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}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\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\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n}\n\nconst supportedFormEncTypes: Set<FormEncType> = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n\n method =\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n encType =\n getFormEncType(target.getAttribute(\"formenctype\")) ||\n getFormEncType(form.getAttribute(\"enctype\")) ||\n defaultEncType;\n\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let { name, type, value } = target;\n if (type === \"image\") {\n let prefix = name ? `${name}.` : \"\";\n formData.append(`${prefix}x`, \"0\");\n formData.append(`${prefix}y`, \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n\n return { action, method: method.toLowerCase(), encType, formData, body };\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n FutureConfig,\n Location,\n NavigateOptions,\n NavigationType,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n unstable_useBlocker as useBlocker,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_mapRouteProperties as mapRouteProperties,\n UNSAFE_useRouteId as useRouteId,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n FutureConfig as RouterFutureConfig,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HTMLFormMethod,\n HydrationState,\n Router as RemixRouter,\n V7_FormMethod,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n joinPaths,\n stripBasename,\n ErrorResponse,\n UNSAFE_invariant as invariant,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n SubmitTarget,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n V7_FormMethod,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n unstable_Blocker,\n unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\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_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_useRouteId,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\ninterface DOMRouterOpts {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n future,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n window?: Window;\n}\n\n/**\n * A `<Router>` 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({\n basename,\n children,\n future,\n window,\n}: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n history: History;\n}\n\n/**\n * A `<Router>` 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({\n basename,\n children,\n future,\n history,\n}: HistoryRouterProps) {\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let { basename } = React.useContext(NavigationContext);\n\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\")\n ? new URL(currentUrl.protocol + to)\n : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n warning(\n false,\n `<Link to=\"${to}\"> contains an invalid URL which will probably break ` +\n `when clicked - please update to a valid URL path.`\n );\n }\n }\n }\n\n // Rendered into <a href> for relative URLs\n let href = useHref(to, { relative });\n\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={absoluteHref || href}\n onClick={isExternal || reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\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 path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\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 isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />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 = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: HTMLFormMethod;\n\n /**\n * `<form encType>` - enhancing beyond the normal string type and limiting\n * to the built-in browser supported values\n */\n encType?:\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"text/plain\";\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * Prevent the scroll position from resetting to the top of the viewport on\n * completion of the navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n let submit = useSubmit();\n return <FormImpl {...props} submit={submit} ref={ref} />;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n submit: SubmitFunction | FetcherSubmitFunction;\n}\n\nconst FormImpl = React.forwardRef<HTMLFormElement, FormImplProps>(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n submit,\n relative,\n preventScrollReset,\n ...props\n },\n forwardedRef\n ) => {\n let formMethod: HTMLFormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as HTMLFormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n method: submitMethod,\n replace,\n relative,\n preventScrollReset,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmit = \"useSubmit\",\n UseSubmitFetcher = \"useSubmitFetcher\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\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 let hasSetSearchParamsRef = React.useRef(false);\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\nexport type SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Submits a fetcher `<form>` to the server without reloading the page.\n */\nexport interface FetcherSubmitFunction {\n (\n target: SubmitTarget,\n // Fetchers cannot replace because they are not navigation events\n options?: Omit<SubmitOptions, \"replace\">\n ): void;\n}\n\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmit);\n let { basename } = React.useContext(NavigationContext);\n let currentRouteId = useRouteId();\n\n return React.useCallback<SubmitFunction>(\n (target, options = {}) => {\n validateClientSideSubmission();\n\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n replace: options.replace,\n fromRouteId: currentRouteId,\n });\n },\n [router, basename, currentRouteId]\n );\n}\n\n/**\n * Returns the implementation for fetcher.submit\n */\nfunction useSubmitFetcher(\n fetcherKey: string,\n fetcherRouteId: string\n): FetcherSubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmitFetcher);\n let { basename } = React.useContext(NavigationContext);\n\n return React.useCallback<FetcherSubmitFunction>(\n (target, options = {}) => {\n validateClientSideSubmission();\n\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n\n invariant(\n fetcherRouteId != null,\n \"No routeId available for useFetcher()\"\n );\n router.fetch(fetcherKey, fetcherRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n });\n },\n [router, basename, fetcherKey, fetcherRouteId]\n );\n}\n\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params and the hash of the resolved\n // URL. This is the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to these directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n // or hash\n path.search = location.search;\n path.hash = location.hash;\n\n // When grabbing search params from the URL, remove the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n if (match.route.index) {\n let params = new URLSearchParams(path.search);\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nfunction createFetcherForm(fetcherKey: string, routeId: string) {\n let FetcherForm = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n let submit = useSubmitFetcher(fetcherKey, routeId);\n return <FormImpl {...props} ref={ref} submit={submit} />;\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n}\n\nlet fetcherId = 0;\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: ReturnType<typeof createFetcherForm>;\n submit: FetcherSubmitFunction;\n load: (href: string) => void;\n};\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>(): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n let [fetcherKey] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => {\n invariant(routeId, `No routeId available for fetcher.Form()`);\n return createFetcherForm(fetcherKey, routeId);\n });\n let [load] = React.useState(() => (href: string) => {\n invariant(router, \"No router available for fetcher.load()\");\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href);\n });\n let submit = useSubmitFetcher(fetcherKey, routeId);\n\n let fetcher = router.getFetcher<TData>(fetcherKey);\n\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form,\n submit,\n load,\n ...fetcher,\n }),\n [fetcher, Form, submit, load]\n );\n\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => {\n if (!router) {\n console.warn(`No router available to clean up from useFetcher()`);\n return;\n }\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): Fetcher[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return [...state.fetchers.values()];\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let { basename } = React.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on pagehide\n usePageHide(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename: GetScrollRestorationKeyFunction | undefined =\n getKey && basename !== \"/\"\n ? (location, matches) =>\n getKey(\n // Strip the basename to match useLocation()\n {\n ...location,\n pathname:\n stripBasename(location.pathname, basename) ||\n location.pathname,\n },\n matches\n )\n : getKey;\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKeyWithoutBasename\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(location.hash.slice(1));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n callback: (event: PageTransitionEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt({ when, message }: { when: boolean; message: string }) {\n let blocker = useBlocker(when);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<IndexRouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\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 <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n IDLE_BLOCKER,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | 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 <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(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\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\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 getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): 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 <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string,\n dataRouterState?: RemixRouter[\"state\"]\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 <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\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 // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) 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 <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\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 \\`<Routes location>\\` 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\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n <code style={codeStyles}>errorElement</code> prop on your route.\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{\n outlet,\n matches,\n isDataRoute: dataRouterState != null,\n }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n revalidation={dataRouterState.revalidation}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches, isDataRoute: true }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback<BlockerFunction>(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: FutureConfig;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: RouterState) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n >\n {state.initialized ? (\n <DataRoutes routes={router.routes} state={state} />\n ) : (\n fallbackElement\n )}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nfunction DataRoutes({\n routes,\n state,\n}: {\n routes: DataRouteObject[];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state);\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n future?: FutureConfig;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n future,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\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/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: 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 `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(\n to,\n getPathContributingMatches(matches).map((match) => match.pathnameBase),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n\n React.useEffect(\n () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n [navigate, jsonPath, relative, 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/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | 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 <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/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 <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\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 locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\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 let treePath = [...parentPath, index];\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, treePath)\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 <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\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","import * as React from \"react\";\nimport type {\n ActionFunction,\n ActionFunctionArgs,\n Blocker,\n BlockerFunction,\n Fetcher,\n HydrationState,\n JsonFunction,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n Navigation,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n PathPattern,\n RedirectFunction,\n RelativeRoutingType,\n Router as RemixRouter,\n ShouldRevalidateFunction,\n To,\n InitialEntry,\n LazyRouteFunction,\n FutureConfig as RouterFutureConfig,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n createPath,\n createRouter,\n defer,\n generatePath,\n isRouteErrorResponse,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n resolvePath,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n AwaitProps,\n MemoryRouterProps,\n NavigateProps,\n OutletProps,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps,\n RouterProviderProps,\n FutureConfig,\n} from \"./lib/components\";\nimport {\n createRoutesFromChildren,\n renderMatches,\n Await,\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n} from \"./lib/components\";\nimport type {\n DataRouteMatch,\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NavigateOptions,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./lib/context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./lib/context\";\nimport type { NavigateFunction } from \"./lib/hooks\";\nimport {\n useBlocker,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigationType,\n useNavigate,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRoutes,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useRouteId,\n useLoaderData,\n useMatches,\n useNavigation,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutesImpl,\n} from \"./lib/hooks\";\n\n// Exported for backwards compatibility, but not being used internally anymore\ntype Hash = string;\ntype Pathname = string;\ntype Search = string;\n\n// Expose react-router public API\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n Blocker as unstable_Blocker,\n BlockerFunction as unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n FutureConfig,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n};\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createPath,\n createRoutesFromChildren,\n createRoutesFromChildren as createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useBlocker as unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n};\n\nfunction mapRouteProperties(route: RouteObject) {\n let updates: Partial<RouteObject> & { hasErrorBoundary: boolean } = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null,\n };\n\n if (route.Component) {\n if (__DEV__) {\n if (route.element) {\n warning(\n false,\n \"You should not include both `Component` and `element` on your route - \" +\n \"`Component` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n element: React.createElement(route.Component),\n Component: undefined,\n });\n }\n\n if (route.ErrorBoundary) {\n if (__DEV__) {\n if (route.errorElement) {\n warning(\n false,\n \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" +\n \"`ErrorBoundary` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n errorElement: React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined,\n });\n }\n\n return updates;\n}\n\nexport function createMemoryRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createMemoryHistory({\n initialEntries: opts?.initialEntries,\n initialIndex: opts?.initialIndex,\n }),\n hydrationData: opts?.hydrationData,\n routes,\n mapRouteProperties,\n }).initialize();\n}\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 DataRouterContext as UNSAFE_DataRouterContext,\n DataRouterStateContext as UNSAFE_DataRouterStateContext,\n mapRouteProperties as UNSAFE_mapRouteProperties,\n useRouteId as UNSAFE_useRouteId,\n useRoutesImpl as UNSAFE_useRoutesImpl,\n};\n","require('../../modules/es.object.has-own');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.hasOwn;\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE == 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var index = lengthOfArrayLike(self);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var classof = require('../internals/classof');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar slice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return slice(classof(it), 0, 3) === 'Big';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es-x/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es-x/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es-x/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.23.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.23.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es-x/no-bigint -- safe\n return BigInt(prim);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw $RangeError('Wrong length or index');\n return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(result, 'stack', clearErrorStack(result.stack, 2));\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar un$ArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (un$ArrayBufferSlice && end === undefined) {\n return un$ArrayBufferSlice(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n setUint8(viewTarget, index++, getUint8(viewSource, first++));\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n O.length = len;\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar un$Reverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return un$Reverse(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\n\n// `Object.hasOwn` method\n// https://github.com/tc39/proposal-accessible-object-hasownproperty\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar $TypeError = TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineBuiltInAccessor(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function dotAll() {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw $TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es-x/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n un$Sort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return un$Sort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toSorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es-x/no-typed-arrays -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es-x/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\n\nvar vanilla = require('jotai/vanilla');\nvar react = require('jotai/react');\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n","'use client';\n'use strict';\n\nvar ReactExports = require('react');\nvar vanilla = require('jotai/vanilla');\n\nvar StoreContext = ReactExports.createContext(undefined);\nvar useStore = function useStore(options) {\n var store = ReactExports.useContext(StoreContext);\n return (options == null ? void 0 : options.store) || store || vanilla.getDefaultStore();\n};\nvar Provider = function Provider(_ref) {\n var children = _ref.children,\n store = _ref.store;\n var storeRef = ReactExports.useRef();\n if (!store && !storeRef.current) {\n storeRef.current = vanilla.createStore();\n }\n return ReactExports.createElement(StoreContext.Provider, {\n value: store || storeRef.current\n }, children);\n};\n\nvar isPromiseLike = function isPromiseLike(x) {\n return typeof (x == null ? void 0 : x.then) === 'function';\n};\nvar use = ReactExports.use || function (promise) {\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then(function (v) {\n promise.status = 'fulfilled';\n promise.value = v;\n }, function (e) {\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n};\nfunction useAtomValue(atom, options) {\n var store = useStore(options);\n var _useReducer = ReactExports.useReducer(function (prev) {\n var nextValue = store.get(atom);\n if (Object.is(prev[0], nextValue) && prev[1] === store && prev[2] === atom) {\n return prev;\n }\n return [nextValue, store, atom];\n }, undefined, function () {\n return [store.get(atom), store, atom];\n }),\n _useReducer$ = _useReducer[0],\n valueFromReducer = _useReducer$[0],\n storeFromReducer = _useReducer$[1],\n atomFromReducer = _useReducer$[2],\n rerender = _useReducer[1];\n var value = valueFromReducer;\n if (storeFromReducer !== store || atomFromReducer !== atom) {\n rerender();\n value = store.get(atom);\n }\n var delay = options == null ? void 0 : options.delay;\n ReactExports.useEffect(function () {\n var unsub = store.sub(atom, function () {\n if (typeof delay === 'number') {\n setTimeout(rerender, delay);\n return;\n }\n rerender();\n });\n rerender();\n return unsub;\n }, [store, atom, delay]);\n ReactExports.useDebugValue(value);\n return isPromiseLike(value) ? use(value) : value;\n}\n\nfunction useSetAtom(atom, options) {\n var store = useStore(options);\n var setAtom = ReactExports.useCallback(function () {\n if (process.env.NODE_ENV !== 'production' && !('write' in atom)) {\n throw new Error('not writable atom');\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return store.set.apply(store, [atom].concat(args));\n }, [store, atom]);\n return setAtom;\n}\n\nfunction useAtom(atom, options) {\n return [useAtomValue(atom, options), useSetAtom(atom, options)];\n}\n\nexports.Provider = Provider;\nexports.useAtom = useAtom;\nexports.useAtomValue = useAtomValue;\nexports.useSetAtom = useSetAtom;\nexports.useStore = useStore;\n","'use strict';\n\nvar keyCount = 0;\nfunction atom(read, write) {\n var key = \"atom\" + ++keyCount;\n var config = {\n toString: function toString() {\n return key;\n }\n };\n if (typeof read === 'function') {\n config.read = read;\n } else {\n config.init = read;\n config.read = function (get) {\n return get(this);\n };\n config.write = function (get, set, arg) {\n return set(this, typeof arg === 'function' ? arg(get(this)) : arg);\n };\n }\n if (write) {\n config.write = write;\n }\n return config;\n}\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}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(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 return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\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\nvar hasInitialValue = function hasInitialValue(atom) {\n return 'init' in atom;\n};\nvar isActuallyWritableAtom = function isActuallyWritableAtom(atom) {\n return !!atom.write;\n};\nvar cancelPromiseMap = new WeakMap();\nvar registerCancelPromise = function registerCancelPromise(promise, cancel) {\n cancelPromiseMap.set(promise, cancel);\n promise.catch(function () {}).finally(function () {\n return cancelPromiseMap.delete(promise);\n });\n};\nvar cancelPromise = function cancelPromise(promise, next) {\n var cancel = cancelPromiseMap.get(promise);\n if (cancel) {\n cancelPromiseMap.delete(promise);\n cancel(next);\n }\n};\nvar resolvePromise = function resolvePromise(promise, value) {\n promise.status = 'fulfilled';\n promise.value = value;\n};\nvar rejectPromise = function rejectPromise(promise, e) {\n promise.status = 'rejected';\n promise.reason = e;\n};\nvar isPromiseLike = function isPromiseLike(x) {\n return typeof (x == null ? void 0 : x.then) === 'function';\n};\nvar isEqualAtomValue = function isEqualAtomValue(a, b) {\n return !!a && 'v' in a && 'v' in b && Object.is(a.v, b.v);\n};\nvar isEqualAtomError = function isEqualAtomError(a, b) {\n return !!a && 'e' in a && 'e' in b && Object.is(a.e, b.e);\n};\nvar hasPromiseAtomValue = function hasPromiseAtomValue(a) {\n return !!a && 'v' in a && a.v instanceof Promise;\n};\nvar isEqualPromiseAtomValue = function isEqualPromiseAtomValue(a, b) {\n return 'v' in a && 'v' in b && a.v.orig && a.v.orig === b.v.orig;\n};\nvar returnAtomValue = function returnAtomValue(atomState) {\n if ('e' in atomState) {\n throw atomState.e;\n }\n return atomState.v;\n};\nvar createStore = function createStore() {\n var atomStateMap = new WeakMap();\n var mountedMap = new WeakMap();\n var pendingMap = new Map();\n var storeListenersRev2;\n var mountedAtoms;\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2 = new Set();\n mountedAtoms = new Set();\n }\n var getAtomState = function getAtomState(atom) {\n return atomStateMap.get(atom);\n };\n var setAtomState = function setAtomState(atom, atomState) {\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(atomState);\n }\n var prevAtomState = atomStateMap.get(atom);\n atomStateMap.set(atom, atomState);\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n if (hasPromiseAtomValue(prevAtomState)) {\n var _next = 'v' in atomState ? atomState.v instanceof Promise ? atomState.v : Promise.resolve(atomState.v) : Promise.reject(atomState.e);\n if (prevAtomState.v !== _next) {\n cancelPromise(prevAtomState.v, _next);\n }\n }\n };\n var updateDependencies = function updateDependencies(atom, nextAtomState, nextDependencies) {\n var dependencies = new Map();\n var changed = false;\n nextDependencies.forEach(function (aState, a) {\n if (!aState && a === atom) {\n aState = nextAtomState;\n }\n if (aState) {\n dependencies.set(a, aState);\n if (nextAtomState.d.get(a) !== aState) {\n changed = true;\n }\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('[Bug] atom state not found');\n }\n });\n if (changed || nextAtomState.d.size !== dependencies.size) {\n nextAtomState.d = dependencies;\n }\n };\n var setAtomValue = function setAtomValue(atom, value, nextDependencies) {\n var prevAtomState = getAtomState(atom);\n var nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || new Map(),\n v: value\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomValue(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n if (hasPromiseAtomValue(prevAtomState) && hasPromiseAtomValue(nextAtomState) && isEqualPromiseAtomValue(prevAtomState, nextAtomState)) {\n if (prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n } else {\n nextAtomState.v = prevAtomState.v;\n }\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n var setAtomValueOrPromise = function setAtomValueOrPromise(atom, valueOrPromise, nextDependencies, abortPromise) {\n if (isPromiseLike(valueOrPromise)) {\n var continuePromise;\n var updatePromiseDependencies = function updatePromiseDependencies() {\n var prevAtomState = getAtomState(atom);\n if (!hasPromiseAtomValue(prevAtomState) || prevAtomState.v !== promise) {\n return;\n }\n var nextAtomState = setAtomValue(atom, promise, nextDependencies);\n if (mountedMap.has(atom) && prevAtomState.d !== nextAtomState.d) {\n mountDependencies(atom, nextAtomState, prevAtomState.d);\n }\n };\n var promise = new Promise(function (resolve, reject) {\n var settled = false;\n valueOrPromise.then(function (v) {\n if (!settled) {\n settled = true;\n resolvePromise(promise, v);\n resolve(v);\n updatePromiseDependencies();\n }\n }, function (e) {\n if (!settled) {\n settled = true;\n rejectPromise(promise, e);\n reject(e);\n updatePromiseDependencies();\n }\n });\n continuePromise = function continuePromise(next) {\n if (!settled) {\n settled = true;\n next.then(function (v) {\n return resolvePromise(promise, v);\n }, function (e) {\n return rejectPromise(promise, e);\n });\n resolve(next);\n }\n };\n });\n promise.orig = valueOrPromise;\n promise.status = 'pending';\n registerCancelPromise(promise, function (next) {\n if (next) {\n continuePromise(next);\n }\n abortPromise == null || abortPromise();\n });\n return setAtomValue(atom, promise, nextDependencies);\n }\n return setAtomValue(atom, valueOrPromise, nextDependencies);\n };\n var setAtomError = function setAtomError(atom, error, nextDependencies) {\n var prevAtomState = getAtomState(atom);\n var nextAtomState = {\n d: (prevAtomState == null ? void 0 : prevAtomState.d) || new Map(),\n e: error\n };\n if (nextDependencies) {\n updateDependencies(atom, nextAtomState, nextDependencies);\n }\n if (isEqualAtomError(prevAtomState, nextAtomState) && prevAtomState.d === nextAtomState.d) {\n return prevAtomState;\n }\n setAtomState(atom, nextAtomState);\n return nextAtomState;\n };\n var readAtomState = function readAtomState(atom, force) {\n var atomState = getAtomState(atom);\n if (!force && atomState) {\n if (mountedMap.has(atom)) {\n return atomState;\n }\n if (Array.from(atomState.d).every(function (_ref) {\n var a = _ref[0],\n s = _ref[1];\n if (a === atom) {\n return true;\n }\n var aState = readAtomState(a);\n return aState === s || isEqualAtomValue(aState, s);\n })) {\n return atomState;\n }\n }\n var nextDependencies = new Map();\n var isSync = true;\n var getter = function getter(a) {\n if (a === atom) {\n var _aState = getAtomState(a);\n if (_aState) {\n nextDependencies.set(a, _aState);\n return returnAtomValue(_aState);\n }\n if (hasInitialValue(a)) {\n nextDependencies.set(a, undefined);\n return a.init;\n }\n throw new Error('no atom init');\n }\n var aState = readAtomState(a);\n nextDependencies.set(a, aState);\n return returnAtomValue(aState);\n };\n var controller;\n var setSelf;\n var options = {\n get signal() {\n if (!controller) {\n controller = new AbortController();\n }\n return controller.signal;\n },\n get setSelf() {\n if (process.env.NODE_ENV !== 'production' && !isActuallyWritableAtom(atom)) {\n console.warn('setSelf function cannot be used with read-only atom');\n }\n if (!setSelf && isActuallyWritableAtom(atom)) {\n setSelf = function setSelf() {\n if (process.env.NODE_ENV !== 'production' && isSync) {\n console.warn('setSelf function cannot be called in sync');\n }\n if (!isSync) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return writeAtom.apply(void 0, [atom].concat(args));\n }\n };\n }\n return setSelf;\n }\n };\n try {\n var valueOrPromise = atom.read(getter, options);\n return setAtomValueOrPromise(atom, valueOrPromise, nextDependencies, function () {\n var _controller;\n return (_controller = controller) == null ? void 0 : _controller.abort();\n });\n } catch (error) {\n return setAtomError(atom, error, nextDependencies);\n } finally {\n isSync = false;\n }\n };\n var readAtom = function readAtom(atom) {\n return returnAtomValue(readAtomState(atom));\n };\n var addAtom = function addAtom(atom) {\n var mounted = mountedMap.get(atom);\n if (!mounted) {\n mounted = mountAtom(atom);\n }\n return mounted;\n };\n var canUnmountAtom = function canUnmountAtom(atom, mounted) {\n return !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n };\n var delAtom = function delAtom(atom) {\n var mounted = mountedMap.get(atom);\n if (mounted && canUnmountAtom(atom, mounted)) {\n unmountAtom(atom);\n }\n };\n var recomputeDependents = function recomputeDependents(atom) {\n var dependencyMap = new Map();\n var dirtyMap = new WeakMap();\n var getDependents = function getDependents(a) {\n var _mountedMap$get;\n var dependents = new Set((_mountedMap$get = mountedMap.get(a)) == null ? void 0 : _mountedMap$get.t);\n pendingMap.forEach(function (_, pendingAtom) {\n var _getAtomState;\n if ((_getAtomState = getAtomState(pendingAtom)) != null && _getAtomState.d.has(a)) {\n dependents.add(pendingAtom);\n }\n });\n return dependents;\n };\n var loop1 = function loop1(a) {\n getDependents(a).forEach(function (dependent) {\n if (dependent !== a) {\n dependencyMap.set(dependent, (dependencyMap.get(dependent) || new Set()).add(a));\n dirtyMap.set(dependent, (dirtyMap.get(dependent) || 0) + 1);\n loop1(dependent);\n }\n });\n };\n loop1(atom);\n var loop2 = function loop2(a) {\n getDependents(a).forEach(function (dependent) {\n if (dependent !== a) {\n var dirtyCount = dirtyMap.get(dependent);\n if (dirtyCount) {\n dirtyMap.set(dependent, --dirtyCount);\n }\n if (!dirtyCount) {\n var _dependencyMap$get;\n var isChanged = !!((_dependencyMap$get = dependencyMap.get(dependent)) != null && _dependencyMap$get.size);\n if (isChanged) {\n var prevAtomState = getAtomState(dependent);\n var nextAtomState = readAtomState(dependent, true);\n isChanged = !isEqualAtomValue(prevAtomState, nextAtomState);\n }\n if (!isChanged) {\n dependencyMap.forEach(function (s) {\n return s.delete(dependent);\n });\n }\n }\n loop2(dependent);\n }\n });\n };\n loop2(atom);\n };\n var writeAtomState = function writeAtomState(atom) {\n var isSync = true;\n var getter = function getter(a) {\n return returnAtomValue(readAtomState(a));\n };\n var setter = function setter(a) {\n var r;\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error('atom not writable');\n }\n var prevAtomState = getAtomState(a);\n var nextAtomState = setAtomValueOrPromise(a, args[0]);\n if (!isEqualAtomValue(prevAtomState, nextAtomState)) {\n recomputeDependents(a);\n }\n } else {\n r = writeAtomState.apply(void 0, [a].concat(args));\n }\n if (!isSync) {\n var flushed = flushPending();\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'async-write',\n flushed: flushed\n });\n });\n }\n }\n return r;\n };\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var result = atom.write.apply(atom, [getter, setter].concat(args));\n isSync = false;\n return result;\n };\n var writeAtom = function writeAtom(atom) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n var result = writeAtomState.apply(void 0, [atom].concat(args));\n var flushed = flushPending();\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'write',\n flushed: flushed\n });\n });\n }\n return result;\n };\n var mountAtom = function mountAtom(atom, initialDependent, onMountQueue) {\n var _getAtomState2;\n var queue = onMountQueue || [];\n (_getAtomState2 = getAtomState(atom)) == null || _getAtomState2.d.forEach(function (_, a) {\n var aMounted = mountedMap.get(a);\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom, queue);\n }\n }\n });\n readAtomState(atom);\n var mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: new Set()\n };\n mountedMap.set(atom, mounted);\n if (process.env.NODE_ENV !== 'production') {\n mountedAtoms.add(atom);\n }\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n var onMount = atom.onMount;\n queue.push(function () {\n var onUnmount = onMount(function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return writeAtom.apply(void 0, [atom].concat(args));\n });\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n });\n }\n if (!onMountQueue) {\n queue.forEach(function (f) {\n return f();\n });\n }\n return mounted;\n };\n var unmountAtom = function unmountAtom(atom) {\n var _mountedMap$get2;\n var onUnmount = (_mountedMap$get2 = mountedMap.get(atom)) == null ? void 0 : _mountedMap$get2.u;\n if (onUnmount) {\n onUnmount();\n }\n mountedMap.delete(atom);\n if (process.env.NODE_ENV !== 'production') {\n mountedAtoms.delete(atom);\n }\n var atomState = getAtomState(atom);\n if (atomState) {\n if (hasPromiseAtomValue(atomState)) {\n cancelPromise(atomState.v);\n }\n atomState.d.forEach(function (_, a) {\n if (a !== atom) {\n var mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('[Bug] could not find atom state to unmount', atom);\n }\n };\n var mountDependencies = function mountDependencies(atom, atomState, prevDependencies) {\n var depSet = new Set(atomState.d.keys());\n prevDependencies == null || prevDependencies.forEach(function (_, a) {\n if (depSet.has(a)) {\n depSet.delete(a);\n return;\n }\n var mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.delete(atom);\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n depSet.forEach(function (a) {\n var mounted = mountedMap.get(a);\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n var flushPending = function flushPending() {\n var flushed;\n if (process.env.NODE_ENV !== 'production') {\n flushed = new Set();\n }\n while (pendingMap.size) {\n var pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(function (_ref2) {\n var atom = _ref2[0],\n prevAtomState = _ref2[1];\n var atomState = getAtomState(atom);\n if (atomState) {\n var mounted = mountedMap.get(atom);\n if (mounted && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n if (mounted && !(!hasPromiseAtomValue(prevAtomState) && (isEqualAtomValue(prevAtomState, atomState) || isEqualAtomError(prevAtomState, atomState)))) {\n mounted.l.forEach(function (listener) {\n return listener();\n });\n if (process.env.NODE_ENV !== 'production') {\n flushed.add(atom);\n }\n }\n } else if (process.env.NODE_ENV !== 'production') {\n console.warn('[Bug] no atom state to flush');\n }\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n return flushed;\n }\n };\n var subscribeAtom = function subscribeAtom(atom, listener) {\n var mounted = addAtom(atom);\n var flushed = flushPending();\n var listeners = mounted.l;\n listeners.add(listener);\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'sub',\n flushed: flushed\n });\n });\n }\n return function () {\n listeners.delete(listener);\n delAtom(atom);\n if (process.env.NODE_ENV !== 'production') {\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'unsub'\n });\n });\n }\n };\n };\n if (process.env.NODE_ENV !== 'production') {\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom,\n dev_subscribe_store: function dev_subscribe_store(l, rev) {\n if (rev !== 2) {\n throw new Error('The current StoreListener revision is 2.');\n }\n storeListenersRev2.add(l);\n return function () {\n storeListenersRev2.delete(l);\n };\n },\n dev_get_mounted_atoms: function dev_get_mounted_atoms() {\n return mountedAtoms.values();\n },\n dev_get_atom_state: function dev_get_atom_state(a) {\n return atomStateMap.get(a);\n },\n dev_get_mounted: function dev_get_mounted(a) {\n return mountedMap.get(a);\n },\n dev_restore_atoms: function dev_restore_atoms(values) {\n for (var _iterator = _createForOfIteratorHelperLoose(values), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n atom = _step$value[0],\n valueOrPromise = _step$value[1];\n if (hasInitialValue(atom)) {\n setAtomValueOrPromise(atom, valueOrPromise);\n recomputeDependents(atom);\n }\n }\n var flushed = flushPending();\n storeListenersRev2.forEach(function (l) {\n return l({\n type: 'restore',\n flushed: flushed\n });\n });\n }\n };\n }\n return {\n get: readAtom,\n set: writeAtom,\n sub: subscribeAtom\n };\n};\nvar defaultStore;\nif (process.env.NODE_ENV !== 'production') {\n if (typeof globalThis.__NUMBER_OF_JOTAI_INSTANCES__ === 'number') {\n ++globalThis.__NUMBER_OF_JOTAI_INSTANCES__;\n } else {\n globalThis.__NUMBER_OF_JOTAI_INSTANCES__ = 1;\n }\n}\nvar getDefaultStore = function getDefaultStore() {\n if (!defaultStore) {\n if (process.env.NODE_ENV !== 'production' && globalThis.__NUMBER_OF_JOTAI_INSTANCES__ !== 1) {\n console.warn('Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044');\n }\n defaultStore = createStore();\n }\n return defaultStore;\n};\n\nexports.atom = atom;\nexports.createStore = createStore;\nexports.getDefaultStore = getDefaultStore;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","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 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\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import 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}"],"sourceRoot":""}